我有一个使用NSFetchedResultsController的tableview来从Core Data存储加载数据,我正在实现controllerDidChangeContent:用新数据(从远程源加载)更新表,但是,委托方法controllerDidChangeContent:正在被调用当我创建一个托管对象时,我的理解是,只有在我保存消息时才会调用它:在相应的托管对象上下文中。
是否有要设置的参数来启用此功能?
我正在下载包含许多项目的XML以插入到tableview中,因为我正在动态创建托管对象并动态添加信息,因此我需要在其中显示其中的一些信息。表视图单元格。
因此,通过controllerDidChangeContent:每当我创建一个新的Managed Object时调用,我需要的属性才能使表视图单元格尚未就绪。
任何见解都会很棒。
感谢。
答案 0 :(得分:2)
您无法禁用NSFetchedResultsController的此行为。为了防止这种情况,您可以创建第二个NSManagedObjectContext,在那里进行所有插入,更改和删除,最后将两个上下文与mergeChangesFromContextDidSaveNotification:
在下载XML文件时,您还应该在后台线程中执行此操作,以防止UI被用户输入阻止。