核心数据保存崩溃

问题描述:

我有一个UITableViewCoreData提取数据使用FetchedResultsController它注册的数据更新。核心数据保存崩溃

在第二个线程上,我从服务器下载数据并更新相同的数据(由UITableView使用)。更新并不复杂,它只是更新实体的BOOL字段。

当我调用保存对对象的情况下,我得到这个异常:NSInternalInconsistencyException,原因是

"Failed to process pending changes before save. The context is still dirty after 100 attempts. ..." 

如果我不更新后正确的,但只在当时救当应用程序即将终止,应用程序运行正常,并且UITableView被正确更新并且数据被持久化。

关于为什么可能会发生的任何指针?难道我做错了什么?

受管对象上下文不是线程安全的。你对每个线程有单独的MOC吗?

如果是这样,我认为正确的模式是从背景NSManagedObjectDidSaveNotifications注册MOC,这样你可以做的主要MOC一个mergeChangesFromContextDidSaveNotification(主线程)。这将使您的MOCs保持同步;它不会自动发生。

+0

哦...我从一个类似CoreDataUtil类中保留一个单例MOC。现在感觉很蠢。 @ _ @ 一个问题:从一个MOC保存的变化会反映在另一个MOC?谢谢!!! – Justin 2010-06-22 03:45:46

+0

增加了一些信息 – admanimal 2010-06-22 04:40:16