NSPredicate用于获取字符串中的关键字

时间:2011-01-20 07:59:06

标签: iphone core-data nspredicate

在核心数据中,我有一个名为keyword的实体,其属性为'text'。我想找到特定刺痛中包含的所有关键字对象。

我试过了:

[NSPredicate predicateWithFormat:@"%@ contains[c] text", myString];

但是崩溃了。似乎只有它反转才会起作用。

2 个答案:

答案 0 :(得分:3)

谓词适用于实体,因此您的谓词可以反转。由于您的实体的text属性包含单个单词,因此您将该字符串拆分为多个单词,然后测试:

// 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];

答案 1 :(得分:0)

我认为你正在反方向做。

试试这个。

[NSPredicate predicateWithFormat:@"text contains[cd] %@", myString];