2012-04-19 52 views
3

該文件是有點太簡單了,我得到一個完整的瞭解ios-coredata:內存跟蹤和完全持久跟蹤有什麼區別?

控制器從而有效地具有三種操作模式,通過它是否有一個代表,以及是否緩存文件 名設置確定。

沒有跟蹤:代表設置爲零。控制器只需 即可提供對數據的訪問,就像執行提取時一樣。

僅內存跟蹤:代理非零,文件緩存名稱 設置爲零。控制器監控其結果集中的對象,並更新 更新部分和訂購信息以響應相關的 更改。

完全持久跟蹤:委託和文件緩存名稱爲 非零。控制器監視結果集中的對象並更新 部分和響應相關更改的訂購信息。 控制器維護其 計算結果的持久高速緩存。

這就是文檔所說的,那麼'永久緩存'是做什麼的? 什麼是'它的計算結果'? 緩存是否只是性能問題?

回答

0

從NSFetchedResultsController文檔:

如果可能的話,一個控制器使用的緩存中以避免需要重複設置任何部分和訂貨的內容執行 工作。

NSFetchResultsController負責將數據組織到各個部分中,並將其排序以供UITableView顯示,這需要對數據進行計算。在每次計算之後,控制器會緩存結果,以便如果要重新顯示相同的數據,則可以返回緩存結果而無需再次執行計算。

所以,緩存旨在通過消除冗餘計算來提高性能。

0

它的計算結果是information about sections in the result set, and for the index.,所以它跟蹤了UITableView應該如何表示它所獲取的數據。而且,是的,這完全取決於表演。