이렇게 어리석은 질문이긴하지만 NSArray
에서 문자열을 어떻게 찾을 수 있습니까? NSArray에서 문자열을 찾는 방법은 무엇입니까?
[array indexOfObjectIdenticalTo:myString]
를 사용하여 시도하지만 같은 주소를 갖도록 고통을 필요로한다.
아무에게도이 작업을 수행하는 방법에 대한 정보가 있습니까?
이렇게 어리석은 질문이긴하지만 NSArray
에서 문자열을 어떻게 찾을 수 있습니까? NSArray에서 문자열을 찾는 방법은 무엇입니까?
[array indexOfObjectIdenticalTo:myString]
를 사용하여 시도하지만 같은 주소를 갖도록 고통을 필요로한다.
아무에게도이 작업을 수행하는 방법에 대한 정보가 있습니까?
the indexOfObject:
method을 입력하면 배열의 각 개체를 isEqual:
메시지로 보내 개체를 찾습니다.
피터의 대답은 정확합니다.
추가 메모 1 개; 배열에 톤과 톤이 있다면, -indexOfObject:
은 선형 검색을 할 것입니다. 이것은 다른 컨테이너를 사용하는 것을 고려해야하는 성능 병목 현상이 될 수 있습니다. NSSet 또는 NSDictionary, 아마도 (문자열의 의미에 따라).
문자열이 모두 비교적 유사하거나 비교적 길다는 또 다른 문제가 있습니다.
물론 성능 문제가 있음을 입증하기 위해 분석 도구를 사용할 때까지는 최적화를 신경 쓰지 마십시오.
당신은 컨테이너로 NSOrderSet을 사용할 수 있습니다, NSOrderedSet 클래스 참조에있는 동안보기는 다음과 같습니다 :
NSOrderedSet과 서브 클래스, NSMutableOrderedSet, 오브젝트의 정렬 된 컬렉션에 프로그래밍 인터페이스를 선언합니다.
NSOrderedSet은 다른 개체의 정적 집합에 대한 프로그래밍 인터페이스를 선언합니다. 정적 집합의 항목이 만들어 질 때 그 항목을 설정하면 항목을 수정할 수 없습니다. 반면에 NSMutableOrderedSet은 동적 인 별개의 객체 집합에 대한 프로그래밍 인터페이스를 선언합니다. 동적 또는 변경 가능한 세트는 언제든지 항목의 추가 및 삭제를 허용하여 필요에 따라 자동으로 메모리를 할당합니다.
요소의 순서가 중요하고 배열에 개체가 포함되어 있는지 여부를 테스트 할 때 고려해야 할 사항> 배열 멤버십에 대한 테스트가 테스트보다 느린 경우 정렬 된 집합을 배열 대신 사용할 수 있습니다. 집합의 멤버십.
containsObject :
주어진 객체는 어레이 내에 존재하는지 여부를 나타내는 부울 값을 반환.
반환 값 anObject를 NO는 달리, 어레이에있는 경우 YES.어레이의 각 객체에 메시지 (각 ISEQUAL에 파라미터로서 anObject를 통과 : 메시지)
토론
이 방법 anObject를가 ISEQUAL 전송함으로써 배열의 존재 여부를 판정한다.
는 NSArray.h
에서 선언