我想知道缓存FetchedResultsController的重要性。假设我有一个包含50个要显示的项目的表视图,在任何给定的时间点,该表视图都可以显示大约10个结果。当我上下滚动表视图时,FetchedResultsController是否隐式获取并缓存结果?如果我没有缓存或指定缓存,FetchedResultsController会不会不必要地再次执行fetch操作。简而言之,我想知道FetchedResultsController的缓存特性。
发布于 2018-09-11 08:31:44
缓存的主要原因是应用程序重新启动的速度更快,因为它不需要重新获取上次运行应用程序时已经做过的记录。相反,结果被存储在一个已经存在于表结构中的文件中,因此可以立即加载,而不是加载所有行、分组等所需的多个查询。此外,非常酷的是,如果另一个进程或扩展已经编辑了数据库,那么当应用程序首次出现时,它将匹配默认图像(应用程序上次关闭时的屏幕截图),并将在应用程序未运行时对表进行动画更改。这对于用户理解上下文非常有用。
您也可以使用它,如果您进入视图控制器,然后返回,然后再次进入,它可以更快地显示表。
发布于 2015-06-22 14:39:41
指定缓存名称时会发生以下情况:
只要区段和排序信息发生更改,缓存就会更新。
特别是使用缓存来存储与段和索引路径相关的信息,这使得数据的加载速度更快。
https://stackoverflow.com/questions/30972678
复制相似问题