我需要根据搜索关键字从CoreData中搜索和获取对象。 我的核心数据对象包含一个名为names
的字符串属性。我的要求如下:使用确切的子字符串筛选字符串
managedObject1.names = "James,James Willson,Willson James,James Camaroon"
managedObject2.names = "James Willson,James,Willson James,James Camaroon"
managedObject3.names = "James Camaroon,James Willson,Willson James,James"
managedObject4.names = "James Willson,Willson James,James Camaroon"
当用户使用'James'搜索关键字时,我只需要managedObject1,managedObject2和managedObject3。我试过NSPredicate(format: "names contains[d] %@", name)
,但它也返回了managedObject4。
如何为此编写谓词?
是啊!因为它也有'詹姆斯'作为子串。谓词总是返回该对象。那么为什么你不需要对象4. –
你应该可能得到所有的托管对象,并使用快捷的'filter'方法。它更灵活,速度更快。 – Sweeper
@Sweeper:在获取请求中通过NSPredicate进行筛选是在SQlite级别完成的,并且具有只将匹配对象加载到内存中的优势。 –