繁体   English   中英

插入核心数据后,TableView行未更新

[英]TableView rows not updating after core data insert

我是快速编程的新手。 我已经玩了一段时间了,但是我什么都没走,所以在这里问。

我有一个tableview,我可以将数据从CoreData加载到视图中,没问题。 我在顶部有一个ADD按钮,可以选择到新的表格视图,其中包含一长串可供选择的选项。 此表视图也可以正常工作,并包含搜索栏。
当用户从第二个表视图中选择一个项目行时,它将把该项目插入CoreData并将segue返回到第一个表视图。 这是我的问题所在,数据不会在可见视图上更新。

我调用tableview.reloaddata(),然后可以看到我的代码使用将随新数据返回的新查询调用fetchedResultsController。 但是代码永远不会到达cellForRowAtIndexPath函数,因此可见数据视图永远不会改变。 它保持与按下添加按钮时相同的显示。

可见数据如何更新? 我想念什么?

使用NSFetchedResultsController ,如果您希望它“自动”更新表视图的内容,则需要确保以下几点:

  1. 您必须成为NSFetchedResultsControllerDelegate并实现更新表视图所需的方法。 这些内容非常冗长,可以在Ray Wenderlich网站上找到 此处的代码在Objective-C中,但转换为Swift相当容易。

  2. 您需要做的第二件事是确保核心数据更新是在后台线程上完成的。 上面链接的网站再次显示了这一点。

完成此操作后,实际上就不需要运行[tableview reloadData]因为获取的结果控制器方法将为您管理一切。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM