0

概述:

斯坦福 iOS 教程包含一个实现(标题 + 实现文件),以帮助在使用核心数据时使用表格视图。

链接- http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall

文件名- CoreDataTableViewController.zip
CoreDataTableViewController.h包含以下文本:

// 请记住,一旦创建了 NSFetchedResultsController,就不能修改它的 @propertys。如果您想要新的获取参数(谓词、排序等),请创建一个新的 NSFetchedResultsController 并再次设置该类的 fetchedResultsController @property。

问题

这听起来有点奇怪,因为在文档中他们提到了您更改属性时的情况,并在这种情况下推荐了一些东西......看起来像是一些错误,或者我错过了一些东西。如果我只是更改谓词并再次获取,一切正常......

4

1 回答 1

0

这取决于您是否使用缓存。正如您链接到的文档中所说:

如果您使用缓存,则必须在更改任何获取请求、其谓词或排序描述符之前调用 deleteCacheWithName:。除非您将 cacheName 设置为 nil,否则您不得为多个查询重复使用相同的获取结果控制器。

如果您正在更改这些属性,那么告诉您创建一个新的获取结果控制器可能比进入更简单(这是初学者课程,获取结果控制器的创建是在此示例代码之外完成的)缓存的解释,以及清除缓存等等。

于 2012-11-16T15:15:25.897 回答