核心数据中的高级NSPredicate语句(字符串比较)

时间:2012-05-24 02:33:44

标签: iphone objective-c cocoa-touch core-data nspredicate

我现在正尝试使用以下方法过滤项目:

我的托管对象是这样的:

@interface MyManagedObject:NSManagedObject

@property (nonatomic, retain) NSString *name;

@end

例如,对象的名称是“ABCDEF GHIJKL公司”

当我用字符串“BCD IJK pan”或“BCD pan”等搜索时,

(BCD是ABCDEF的子串,IJK是GHIJKL的子串,pan是公司的子串)

它应该能够找到对象。

我不知道如何用这个来编写谓词。我尝试使用predicateWithBlock:但Core Data不支持来自predicateWithBlock的谓词:

我还尝试先获取所有对象,然后使用谓词块过滤结果。但它非常慢,因为我在Core Data中有大约10M个对象。

所以我想问一下,我可以在一个谓语中做到这一点吗?非常感谢!!!

1 个答案:

答案 0 :(得分:0)

如果包含通配符LIKE,则可以使用*执行此操作。因此,如果您使用self LIKE %@, @"*BCD*IJK*pan*进行搜索,则会找到它