2012-11-14 47 views
0

我已經問過,但無法得到明確的答案。 我有一個對象在CoreData這個樣子,關鍵字(詞章)NSPredicate和NSArray的令牌

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

我想用戶搜索任何的這些話,如「冷佛羅里達的天氣。」
所以,我打破了搜索到NSArray *tokens = [search.text compnentsSeparatedBy:@" "];

目前,我有這個斷言這有點兒工作:

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

但是,問題是,我不知道有多少的話用戶會輸入,所以,有沒有辦法使用標記的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:@「column In%@」,tokens]?如果我這樣做[NSPredicate predicateWithFormat:@「column In [cd]%@」,tokens]嗎? – SMA2012

+0

「IN」命令將返回包含其中一個令牌的所有對象。不確定'[cd]'抱歉。 –

+0

如果ti不是區分大小寫的,'IN'會適用於我。 [cd]似乎沒有工作。我將檢查NSCompoundPredicate。 – SMA2012