2012-04-19 62 views
3

该文件是有点太简单了,我得到一个完整的了解ios-coredata:内存跟踪和完全持久跟踪有什么区别?

控制器从而有效地具有三种操作模式,通过它是否有一个代表,以及是否缓存文件 名设置确定。

没有跟踪:代表设置为零。控制器只需 即可提供对数据的访问,就像执行提取时一样。

仅内存跟踪:代理非零,文件缓存名称 设置为零。控制器监控其结果集中的对象,并更新 更新部分和订购信息以响应相关的 更改。

完全持久跟踪:委托和文件缓存名称为 非零。控制器监视结果集中的对象并更新 部分和响应相关更改的订购信息。 控制器维护其 计算结果的持久高速缓存。

这就是文档所说的,那么'永久缓存'是做什么的? 什么是'它的计算结果'? 缓存是否只是性能问题?

回答

0

从NSFetchedResultsController文档:

如果可能的话,一个控制器使用的缓存中以避免需要重复设置任何部分和订货的内容执行 工作。

NSFetchResultsController负责将数据组织到各个部分中,并将其排序以供UITableView显示,这需要对数据进行计算。在每次计算之后,控制器会缓存结果,以便如果要重新显示相同的数据,则可以返回缓存结果而无需再次执行计算。

所以,缓存旨在通过消除冗余计算来提高性能。

0

它的计算结果是information about sections in the result set, and for the index.,所以它跟踪了UITableView应该如何表示它所获取的数据。而且,是的,这完全取决于表演。