2010-05-12 58 views
2

我通過在用戶輸入每個給定字符後使用performFetch:來實現一種即用型搜索(單個屬性上的文本搜索)。 performFetch:正在後臺線程中運行,以避免鍵盤死機。使用核心數據/ NSFetchedResultsController進行即用型搜索

但是,當打字許多無用的提取開始。一個NSOperationQueue可能是一個選項,但我想知道是否有其他方法用於這種相當常見的搜索行爲。

什麼是最好的實踐來注意什麼時候完成抓取和表視圖更新與上一次抓取開始新的抓取?

回答

4

您不需要在每個字母后對Core Data堆棧執行提取操作。您可以針對已在NSFetchedResultsController實例中的fetchedObjects運行NSPredicate。這將消除在後臺線程上執行提取的需要,因爲您只是針對已存在於內存中的結果進行篩選,並且會消除性能問題。

隨着每個字母的輸入,您可以調整NSPredcate並對結果進行進一步過濾。

+0

謝謝,我會嘗試在'fetchedObjects'上運行NSPredicate的方法。 – Sney 2010-05-14 10:10:26

+0

如果我們刪除字符,這將無法正常工作 – Raj 2013-12-24 11:29:41

+0

如果檢測到刪除,則謂詞會重新開始。 – 2013-12-27 17:09:42

相關問題