문제

이것은 그런 어리석은 질문처럼 느껴지지만 어떻게 문자열을 찾을 수 있습니까? NSArray?

나는 사용을 시도했다

[array indexOfObjectIdenticalTo:myString]

그러나 그것은 찌르기가 같은 주소를 가져야합니다.

누구 든지이 작업을 수행하는 방법에 대한 팁이 있습니까?

도움이 되었습니까?

해결책

당신은 원합니다 그만큼 indexOfObject: 방법, 배열에서 각 객체를 보내서 개체를 찾습니다. isEqual: 메시지.

다른 팁

베드로의 대답이 맞습니다.

하나의 추가 메모; 배열에 톤과 톤이 있다면 -indexOfObject: 선형 검색을 할 것입니다. 이것은 다른 컨테이너 사용을 고려해야하는 성능 병목 현상 일 수 있습니다. NSSET 또는 NSDICTION, 아마도 (문자열의 의미에 따라 다름).

또 다른 gotcha는 현이 모두 비교적 비슷하거나 상대적으로 길면입니다.

물론, 분석 도구를 사용하여 성능 문제가 있음을 증명할 때까지 아무것도 최적화하지 마십시오.

nsorderset을 컨테이너로 사용할 수 있으며 nsordedset 클래스 참조의 오버 뷰는 다음과 같습니다.

NSORDEREDSET 및 하위 클래스 인 NSMutableARDEREDSET은 프로그래밍 방식의 인터페이스를 주문한 객체 모음으로 선언합니다.

NSORDEREDSET은 고유 한 개체의 정적 세트에 대한 프로그래밍 인터페이스를 선언합니다. 정적 세트의 항목을 만들 때 정적 세트의 항목을 설정 한 후 항목을 수정할 수 없습니다. 반면에 nsmutableArderedset은 동적 객체의 동적 세트에 대한 프로그래밍 인터페이스를 선언합니다. 동적 (또는 Mutable)은 언제든지 항목의 추가 및 삭제를 허용하여 필요에 따라 메모리를 자동으로 할당 할 수 있습니다.

요소의 순서가 중요 할 때 순서 세트를 배열 대안으로 사용할 수 있으며 세트에 객체가 포함되어 있는지 테스트 할 때 성능이 고려 사항입니다.> 배열의 멤버십 테스트는 세트의 멤버십 테스트보다 느리게 진행됩니다. .

방문 http://developer.apple.com/library/mac/#documentation/foundation/nsorderedset_class/reference/reference.html

포함 :

주어진 객체가 배열에 있는지 여부를 나타내는 부울 값을 반환합니다.

  • (BOOL)은 다음을 포함합니다.

반환 값예, ANOBJECT가 배열에있는 경우, 그렇지 않으면 아니요.

논의

이 메소드는 각 배열의 객체에 isequal : 메시지를 전송하여 ANOBJECT가 배열에 존재하는지 여부를 결정합니다 (및 각 isequal : message에 매개 변수로 anobject를 전달).

선언

nsarray.h

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top