2012-11-14 2 views
0

이전에이 질문을했지만 명확한 대답을 얻을 수 없었습니다. 이 같은 CoreData에서 개체를 가지고, 키워드 (단어, 장)토큰의 NSPredicate 및 NSArray

Word  Chapter 
cold  chapter1 
cold  chapter2 
cold  chapter3 
weather chapter1 
weather chapter2 
humidity chapter7 
Florida chapter8 
Florida chapter9 

내가 그래서 ".. 추운 플로리다 날씨"에서와 같이이 단어 중 어떤
를 검색하는 사용자가 원하는, 내가 파산 문제는 내가 사용자 얼마나 많은 단어를 모르겠입니다,

[NSPredicate [email protected]"word contains[cd]%@ AND word contains [cd]%@",words[0],words[1],words[2]..] 

을하지만 : 현재 NSArray *tokens = [search.text compnentsSeparatedBy:@" "];

로 검색, 내가 좀 일이 술어가 그래서, 토큰의 NSArray를 사용하여 'word'열을 검색하는 방법이 있습니까?

답변

1

체크 아웃 :

[NSCompoundPredicate andPredicateWithSubpredicates:/*Your Array Of Contains Predicates Here*/]

당신이 개체 집합 배열을/검색 할 IN 명령을 사용하여 되길 원한다면 나는 당신의 질문에서 불분명 해요하지만

.

[NSPredicate predicateWithFormat:@"word IN %@", setOfWords]

+0

감사합니다 - 나는 NSCompundPredicate을 체크 아웃하기 전에 - 나는 두 번째 제안을 확인하고 싶습니다. NSArray * tokens = {cold, weather, Florida} 인 경우 검색 할 단어입니다. [NSPredicate predicateWithFormat : @ "% in, @ 토큰 열]을 사용할 수 있습니까? 이 [NSPredicate predicateWithFormat : @ "column [cd] % @", tokens]를 입력하면 대소 문자를 구분합니다. – SMA2012

+0

'IN' 명령은 토큰 중 하나를 포함하는 모든 객체를 반환합니다. '[cd]'미안하다. –

+0

ti가 대소 문자를 구분하지 않는 경우 'IN'이 나를 위해 효과가있었습니다. [cd]가 작동하지 않는 것 같습니다. 나는 NSCompoundPredicate를 검사 할 것이다. – SMA2012