使用FetchedResultsController使UITableView保持最新状态?

时间:2013-07-26 12:37:32

标签: ios cocoa-touch core-data nsfetchedresultscontroller

我已经开始了一个小型技术演示项目,只是为了感受核心数据。我希望加载一个表视图,使用核心数据保存最新数据。

我认为我已经实现了数据模型并正确地保存了笔记。但是它没有在桌面上更新。我不确定我做错了什么,也许我没有正确地联系到什么东西?

我已经检查了文件系统上的持久存储,我创建的注释就在那里,所以我知道核心数据正在写入文件OK。

任何帮助将不胜感激。我已经将项目上传为zip,以避免在这里粘贴整个课程。表的委托和数据源也设置为我的故事板中的视图控制器。

该项目位于:https://dl.dropboxusercontent.com/u/12457690/cdtest.zip

1 个答案:

答案 0 :(得分:0)

恐怕有几个问题:

  • 您尚未实施任何NSFetchedResultsControllerDelegate方法。 您希望表视图如何自动更新?
  • setManagedObjectContext:方法中,您创建了一个获取的结果控制器,但不设置该委托。
  • 永远不会调用您的performFetch方法。即使它被召唤,它也不会打电话 在获取的结果控制器上performFetch:,因为没有设置谓词(为什么这个限制?)。
  • deleteNote:方法中,您应该删除托管对象。更新 相应的表视图由获取的结果控制器完成(如果正确实现)。

也许从实施NSFetchedResultsControllerDelegate方法开始(有 该协议文档中的示例代码)。然后在代码中设置断点 并检查是否设置了获取结果控制器的委托,并检查是否 最初的performFetch:被调用。