我正在構建一個應用程序,它實現了一個文本輸入發生變化時查詢數據庫的活動文本搜索。 它可以工作,但當NSFetchedResultsController的fetchRequest返回超過一定數量的項目(>〜20)時,鍵盤輸入會很遲鈍。NSFetchedResultsController performFetch很慢返回很多項
func textViewDidChange(textView: UITextView) {
let predicate = NSPredicate("itemID" > 0) //<- returns all items
self.frc.fetchRequest.predicate = predicate
self.frc.executeFetchRequest(nil)
}
請注意,沒有實際的UI更新正在進行,所以laggy鍵盤輸入必須由fetchRequest引起。
有沒有一種方法來實現大量項目的實時搜索沒有這種滯後?
它接縫你的謂詞不會改變。每次按鍵上的所有項目都有什麼用處? – Mundi
示例代碼是將問題縮小到僅提取項目的結果。在實際項目中謂詞發生變化,UI更新顯示新數據 – matteok
一種解決方案是隻有在至少有2個字符後纔開始讀取。 – Mundi