UIManagedDocument和NSFetchedResultsController
我遇到了使用UIManagedDocument保存实体的问题。 我有一个NSFetchedResultsController,其上下文被设置为UIManagedDocuments上下文。 我有控制器设置部分。 用户向UIManagedDocuments上下文添加一个条目,并使用以下命令保存上下文:[context save:&error]; 和我的NSFetchedResultsController正确更新。
如果我离开具有NSFetchedResultsController的视图,然后返回到视图,在该视图中创建一个具有相同UIManagedDocuments上下文的新NSFetchedResultsController,当我调用时会返回一个错误:[fetchedResultsController performFetch:&error];
错误说:
CoreData:错误:(NSFetchedResultsController)索引处提取的对象具有乱序部分名称'。 对象必须按节名称'
并且提取失败。
如果我在返回视图前等待一段时间,我不会收到错误消息。 我知道保存操作是在子上下文中完成的,然后将更改推送到父上下文,我认为这与问题有关。 有没有人有办法解决吗?
根据UIManagedDocument参考,你不应该通过NSManagedObjectContext保存。 保存应该通过适当的UIManagedDocument API完成。 不幸的是,该文件不完全清楚你应该使用什么。
如果您使用撤消管理器,该路径应确保所有内容都被正确标记为脏,并保存。 同样,使用显式调用
[document updateChangeCount:UIDocumentChangeDone];
应该提供类似的功能。 但是,保存将被推迟,因为它是在单独的线程中完成的。
链接地址: http://www.djcxy.com/p/36181.html上一篇: UIManagedDocument and NSFetchedResultsController
下一篇: Does NSFetchedResultsController Observe All Changes to Persistent Store?