2012-11-16 34 views
0

概述:为什么Paul Hegarty说不要更改NSFetchedResultsController @properties?

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

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

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

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

问题

这听起来有点怪,因为在docs他们提到的情况,当你改变性质,并推荐了一些事情在这种情况下...看看像一些错误,或者我错过的东西。如果我只是改变谓词和再次获取,一切正常......

回答

0

这取决于你是否使用缓存或不。正如它在您链接到的文档中所述:

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

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

+0

是的,我看到了那句话。所以没关系...... – DanSkeel

相关问题