2010-02-16 2 views

답변

6

NSMutableArray를 사용해보십시오.

+0

내가 동등한를 쓸 수있는 Objective-C에서? *** 자바 : 벡터 getMethod(); *** *** Objective-C에서 : // 무엇을 쓸 수 있습니까 ??? 맞습니다 ** - (벡터) getMethod; ***** – suse

+1

@suse - 당신이이 말의 뜻을 진술 한 내용이 약간 명확하지 않지만 @ Jim의 답변에 따라 어떻게 - (NSMutableArray *) getMethod; '소리? – asveikau

+0

헤이 ya.Iven는 똑같은 것을 시도했다 :). 그것은 해결 .. 감사합니다 .. – suse

2

가장 가까운 것은 자바 벡터와 달리 NSMutableArray입니다. 스레드 안전성이 보장되지 않습니다. 스레드 안전성이 필요하지 않으면 NSMutableArray가 좋습니다. List 대신 java 벡터를 사용하면 스레드 safaty가 필요하고 objective-C에서는 NSArray를 사용해야합니다. 있는 NSArray에 요소의 추가 작업이 새로운 배열 인스턴스를 반환하기 때문에 API는 약간 차이가 있지만, 스레드 안전 참조 http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html

있는 NSArray입니다 : http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/cl/NSArray 있는 NSMutableArray : http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html#//apple_ref/occ/cl/NSMutableArray

+0

글쎄, 호출 벡터 "스레드 안전"exagerating입니다 : 그것은 동기화지만, 어떤 경우에 이것은 스레드 안전을 위해 충분하지 않습니다. 벡터를 반복 할 때 – tonio

+0

여러 스레드에서 작업을 수행하는 경우 뮤텍스 또는 이와 유사한 것으로 보호하지 않는 이유는 무엇입니까? 동기화에 대한 이러한 접선 토론은 실제로이 질문에 대답하기 위해 제기해야 할 세부 사항입니까? – asveikau

+1

음, 여기에 동기화 된 것을 올렸습니다. 당신이 그런 것에주의를 기울이지 않으면, 당신이 사용하는 "동등한"것은 매우 다른 행동을하기 때문입니다. 그렇습니다. 뮤텍스로 모든 것을 보호 할 수는 있지만, 오류가 발생하기 쉽고, 비효율적이며 (효율적인 버전은 약간의 생각이 필요합니다.) 좋은 해결책이 이미 있습니다. (그리고 그것은 Vector가 Java 세계에서 제공하는 것입니다. 그래서 필요 없어, 자바리스트를 사용하라.) – tonio

관련 문제