我在我的應用程序中使用核心數據來存儲可能具有多達50k個對象或更多對象的實體。我有一個NSFetchedResultsController在表視圖中配對。表格視圖工作正常,由於細胞重用,但我最大的問題是排隊實際的數據庫來獲取數據集。如何有效處理核心數據中的大數據集?
當我第一次加載表視圖我需要從數據庫的所有結果。我使用默認的獲取請求與一個排序描述符,我已經將batchSize設置爲1,000。在iPad 2上,此查詢最多需要15秒才能完成!我也必須在搜索被取消之後運行這個查詢,所以總體上它使應用程序不可用。我的假設是,CD仍然必須解決所有這些結果或設置節或什麼,我真的不知道,但只使用batchSize不會幫助?內容也是非常動態的,因爲新行總是被添加,排序順序改變等等。所以緩存具有有限的益處。
我現在在想,最好的選擇是在fetchRequest中使用fetchLimit,然後實現一些基本的分頁。當表格視圖滾動到結尾時,獲取結果的下一個「頁面」?這種方法唯一的問題是我失去了sectionIndex,我不能想出任何方法。
任何人有任何想法或已經處理此問題?
爲什麼你需要整個數據集? – Wain