2012-04-29 2 views
2

주소록 연락처 사전의 배열이 있습니다. 이름에 대한 문자열과 전자 메일 주소 배열을 포함하는 각 이름의 사전이 있습니다.iOS에서 중첩 된 배열을 검색하기 위해 술어를 사용합니다.

{ 
    emails =   (
     "[email protected]" 
    ); 
    name = "Some Name"; 
}, 
{ 
    emails =   (
     "[email protected]", 
     "[email protected]" 
    ); 
    name = "John Q. Public"; 
}, 
[etc.] 

내가 이메일을 하나 이상 가지고있는 모든 항목을 반환, 이메일 주소 이러한 사전을 검색하는 술어를 사용하려면 : 여기 접점의 배열을 로그인 할 때 같은 NSLog 출력 모습의 조각이다 검색 용어와 일치하는 주소.

지금까지, 나는 그렇게처럼, 단지 CONTAINS 사용 this question에 기술 된 방법을 시도했다 :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"emails CONTAINS[c] %@", searchString]; 

는하지만 모든 검색은 단지 빈 배열을 반환. 이름 필드를 대신 검색하면 잘 작동합니다.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@", searchString]; 

그래서 배열을 검색하는 것이 확실합니다. 아이디어?

답변

5

나는 그것을 알아 냈습니다. 작동 방식 :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY emails CONTAINS[c] %@",currentString]; 

내 고무 덕분에 대해 감사드립니다.

+0

시간도 절약 해 주셔서 감사합니다. –

관련 문제