我在使用UIManagedDocument保存实体时遇到问题。我有一个上下文设置为UIManagedDocuments上下文的NSFetchedResultsController。我已经设置了控制器和分区。用户将一个条目添加到UIManagedDocuments上下文中,我使用: context save:&error;保存该上下文,我的NSFetchedResultsController将正确更新。
如果我离开具有NSFetchedResultsController的视图,然后返回到视图,在该视图中,我使用相同的UIManagedDocuments上下文创建了一个新的NSFetchedResultsController,当我调用: fetchedResultsController performFetch:& error;
错误信息为:
CoreData: error:(NSFetchedResultsController)在索引处提取的对象具有无序的节名‘。对象必须按节名排序‘
并且获取失败。
如果我在返回视图之前等待一段时间,我不会得到错误。我知道保存操作是在子上下文上完成的,然后将更改推送到父上下文上,我认为这与问题有关。有谁有解决方案吗?
发布于 2012-04-11 00:59:46
根据UIManagedDocument参考,您不应该通过NSManagedObjectContext保存。应通过适当的UIManagedDocument应用编程接口进行保存。不幸的是,该文档并不完全清楚您应该使用什么。
如果您使用撤消管理器,该路径应确保所有内容都被适当地标记为脏并保存。同样,使用显式调用
[document updateChangeCount:UIDocumentChangeDone];应该提供类似的功能。但是,保存将被推迟,因为它是在单独的线程中完成的。
https://stackoverflow.com/questions/9081643
复制相似问题