[英]TableView rows not updating after core data insert
我是快速编程的新手。 我已经玩了一段时间了,但是我什么都没走,所以在这里问。
我有一个tableview,我可以将数据从CoreData加载到视图中,没问题。 我在顶部有一个ADD按钮,可以选择到新的表格视图,其中包含一长串可供选择的选项。 此表视图也可以正常工作,并包含搜索栏。
当用户从第二个表视图中选择一个项目行时,它将把该项目插入CoreData并将segue返回到第一个表视图。 这是我的问题所在,数据不会在可见视图上更新。
我调用tableview.reloaddata(),然后可以看到我的代码使用将随新数据返回的新查询调用fetchedResultsController。 但是代码永远不会到达cellForRowAtIndexPath函数,因此可见数据视图永远不会改变。 它保持与按下添加按钮时相同的显示。
可见数据如何更新? 我想念什么?
使用NSFetchedResultsController
,如果您希望它“自动”更新表视图的内容,则需要确保以下几点:
您必须成为NSFetchedResultsControllerDelegate
并实现更新表视图所需的方法。 这些内容非常冗长,可以在Ray Wenderlich网站上找到 。 此处的代码在Objective-C中,但转换为Swift相当容易。
您需要做的第二件事是确保核心数据更新是在后台线程上完成的。 上面链接的网站再次显示了这一点。
完成此操作后,实际上就不需要运行[tableview reloadData]
因为获取的结果控制器方法将为您管理一切。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.