我需要根據搜索關鍵字從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級別完成的,並且具有隻將匹配對象加載到內存中的優勢。 –