2015-06-22 81 views
0

我想知道緩存FetchedResultsController的重要性。假設我有一個包含50個項目的表格視圖,並且在任何給定的時間點,表格視圖可以顯示10個結果。當我向上和向下滾動表格視圖時,隱式提取FetchedResultsController並緩存結果?如果我不緩存或指定緩存,那麼FetchedResultsController不必要地再次執行提取。簡而言之,我想知道FetchedResultsController的緩存功能。NSFetchedResultsController緩存

回答

0

這些都是當您指定一個高速緩存名稱中發生的事情:

  • 如果控制器無法找到一個合適的緩存,它計算 所需的部分和對象部分中的順序。然後 將此信息寫入磁盤。
  • 如果找到具有相同名稱的高速緩存,控制器測試 緩存來確定其內容是否仍然有效。控制器將當前實體名稱,實體版本散列, 排序描述符和段密鑰路徑與存儲在 緩存中的緩存信息進行比較,以及緩存信息 修改日期和持久性存儲文件。
  • 如果緩存是與當前的信息一致時, 控制器重複使用先前計算的信息。
  • 如果緩存中不符合當前的信息一致,那麼 所需的信息重新計算,並緩存更新。

任何時間段和訂購信息的變化,緩存被更新。

尤其緩存用於存儲與部分和indexpath,使得快速加載數據的信息。

+0

感謝您的回覆。這是由Apple記錄的。所以實質上,我們可以說擁有一個Cache是​​一個更好的選擇嗎?如果沒有緩存,滾動發生了什麼?提取結果控制器每次獲取? – 0x6d6e

相關問題