CoreData:仅保存一个线程的更改

时间:2013-06-15 11:12:55

标签: objective-c core-data

我使用来自两个线程的CoreData,每个线程使用单独的NSManagedObjectContext,并使用this guide中的共享NSPersistentStoreCoordinator。{{3}}。我的目标是只提交一个线程在从这个线程调用[NSManagedObjectContext save]时所做的更改。所以在以下场景中:

th1: add obj1 // don't save
th2: add obj2
th2: save
quit app
open app once again

我只想保存obj2。可能吗?如果是这样,我该怎么做?

1 个答案:

答案 0 :(得分:1)

是的,NSManagedObjectContext知道线程最初运行他,performBlock是检索此信息的方法。

 [myManagedObjectContext performBlock:^{
                    //do your stuff here in managedObjectContext thread
                }];

请记住,这只是一个块。

所以,如果你喜欢你说过两个ManagedObjectContext你应该没有管理它的问题,因为performBlock只处理上下文而不是PS。