4
在覈心數據中,我有一個名爲keyword的實體具有「text」屬性。我想查找包含在特定sting中的所有關鍵字對象。NSPredicate用於獲取字符串中的關鍵字
我想:
[NSPredicate predicateWithFormat:@"%@ contains[c] text", myString];
但這崩潰。看起來好像它只會在倒過來時才起作用。
在覈心數據中,我有一個名爲keyword的實體具有「text」屬性。我想查找包含在特定sting中的所有關鍵字對象。NSPredicate用於獲取字符串中的關鍵字
我想:
[NSPredicate predicateWithFormat:@"%@ contains[c] text", myString];
但這崩潰。看起來好像它只會在倒過來時才起作用。
謂詞在實體上起作用,所以你的謂詞顛倒了。由於您的實體的文本屬性包含一個字,你會分割字符串轉換成多個單詞,然後測試:
// This is very simple and only meant to illustrate the property, you should
// use a proper regex to divide your string and you should probably then fold
// and denormalize the components, etc.
NSSet* wordsInString = [NSSet setWithArray:[myString componentsSeparatedByString:@" "]];
NSPredicate* pred = [NSPredicate predicateWithFormat:@"SELF.text IN %@", wordsInString];
我覺得你在反方向做。
試試這個。
[NSPredicate predicateWithFormat:@"text contains[cd] %@", myString];
你能解釋一下你想要的更好嗎?你正在尋找所有的關鍵字實體`k`,其中`k.text包含myString`,或者所有的實體`k.myString包含文本`,其中myString是關鍵字上的變量屬性名? – Tim 2011-01-20 08:06:32
相反,我正在尋找在mystring中包含k.text(包含在內)的所有關鍵字實體。另外應該注意的是,關鍵字可能比單個單詞長,所以它們更像是關鍵短語。 – 2011-01-20 23:31:00