Core data RestKit saveToPersistentStore在将数据写入数据库之前调用controllerDidChangeContent

Core data RestKit saveToPersistentStore在将数据写入数据库之前调用controllerDidChangeContent,core-data,ios7,restkit,nsfetchedresultscontroller,Core Data,Ios7,Restkit,Nsfetchedresultscontroller,我的项目中有RestKit 0.23.0和核心数据以及NSFetchedResultsController。我想更改实体的属性,并在-(void)controllerDidChangeContent:(NSFetchedResultsController*)控制器中重新加载视图 我从objectManager.managedObjectStore.mainQueueManagedObjectContext获取要更改的托管对象,更改属性并调用objectManager.managedObjectS

我的项目中有RestKit 0.23.0和核心数据以及NSFetchedResultsController。我想更改实体的属性,并在
-(void)controllerDidChangeContent:(NSFetchedResultsController*)控制器中重新加载视图

我从
objectManager.managedObjectStore.mainQueueManagedObjectContext
获取要更改的托管对象,更改属性并调用
objectManager.managedObjectStore.mainQueueManagedObjectContext saveToPersistentStore:&错误]
。调用了
controllerDidChangeContent
方法,但此时数据不会写入数据库

NSManagedObjectContext+RKAdditions.m中调试之后,我看到
success=[contextToSave:&localError]被调用两次。第一次运行激发
controllerDidChangeContent
(此时数据未写入数据库),第二次调用将数据写入数据库,但不调用
controllerDidChangeContent


你知道我做错了什么吗?

没有什么“错”,你只是看到两个不同的商店被保存了下来。首先是主线程存储(非持久),然后是持久存储(备份在磁盘上)。主线程存储是持久存储的子线程

因此,当保存主线程存储时,您会收到一个通知,因为这是您要求的,但是持久存储尚未保存,因此没有任何内容保存到磁盘


这不会给您带来问题。如果确实如此,您的代码中可能存在逻辑错误,或者您解决问题的方法不太正确。

只需再次测试,而不调用save。谁知道RestKit在幕后做什么。谢谢你的回复。如果我没有调用
saveToPersistentStore
,我将无法在我的
NSFetchedResultsController
中看到
performFetch
的更改。也许这里有什么问题?谢谢你的回复。你给我指明了正确的方向。我认为,这更像是一个核心数据。我问了一个新问题,描述了我想完成的任务。如果您能看看这里,那就太好了: