0

我一直在寻找几天,并通过阅读苹果文档和各种教程继续学习,但是有一个我似乎无法处理的问题。

我有一个简单的应用程序,它使用单个核心数据实体 (ProjectEntry) 来跟踪项目。目前所有的属性都是字符串。它基本上是 Paul Hegarty 的核心数据讲座和 Tim Roadley 的网络教程的组合。

我可以添加和保存实体并用数据填充表格视图。目前,我正在使用 Hegarty 在讲座中提供的 CoreDataTableViewController 子类。我之所以这么说是因为...

当我的 UITableView 没有被划分为部分时,新信息在添加新条目后“立即”出现在 UI 中。但是,当我添加部分(通过 sectionNameKeyPath)时,新数据仍会保存,但仅在刷新几次或等待 30 秒后再刷新(通过拉刷新机制,Hegarty 也提供)后才会显示。

tableview 委托方法似乎都在工作,NSFetchedResultsController 的方法也是如此。过去使用 Stanford/Hegarty CoreDataTableViewController 子类取得了成功,我通过阅读实现文件本身学到了很多东西。

控制器嵌入在 Navigation 控制器中,托管对象上下文通过 prepareForSegue 方法在控制器之间传递。一些简单的日志记录显示,最初通过 UIManagedDocument 获得的托管对象上下文正在成功传递。

我已经尝试了 viewWillAppear 中的 [self.tableview reloadData] 和/或 beginUpdates/endUpdates,但延迟仍然存在。

将 tableview 划分为导致延迟的部分是什么?是否需要在 tableview 上调用 reloadSections?就像我说的,这些条目是用核心数据保存的,而 fetchedResultsController 会立即填充非分段的表格视图......

我可能只是想念一些显而易见的事情,但任何帮助将不胜感激。

4

1 回答 1

0

Warren Burton 上面的评论让我重新检查了在通过 prepareForSegue 方法在视图控制器之间传递时我的托管对象上下文行为是否一致。

所以,正如我在上面的最后一条评论中提到的,它似乎暂时解决了这个问题:

从上图:初始视图控制器是非tableview,它可以segue 到UIViewController 以添加ProjectEntry,或者segue 到列出已保存项目条目的UITableViewController。这个初始视图控制器创建或使用 UIManagedDocument。通过设置单行检查以查看是否在此初始视图控制器的 viewWillAppear 方法中使用了 UIManagedDoc,在 tableview 中显示新部分数据的“延迟”似乎停止了。在说问题已解决之前,我将对其进行更多测试。这样,共享的托管对象上下文似乎更好地通过托管文档“绑定在一起” - vapul

于 2014-04-13T23:47:44.890 回答