开发者

Is it sufficient to create a new NSManagedObjectContext for every new NSOperation or Thread?

I need to use Core Data inside NSOperationQueue operations. I've heard that it's sufficient to create an NSManagedObject instance for every single NSOperation or Thread, and then Core Data won开发者_Go百科't have multithreading-problems. Is this correct?

Would the other MOC's be updated automatically when others get modified in NSOperations?


You are correct that you need a new MOC (Managed Object Context) for each thread/operation. Give the new context the same persistant store coordinator as your main context, and then when saving the contexts you need to handle the merge. See my previous answer here which explains how to perform the merge:

How to Deal with Temporary NSManagedObject instances?


Would the other MOC's be updated automatically when others get modified in NSOperations?

No. You need to handle the NSManagedObjectContextDidSaveNotification notification and use mergeChangesFromContextDidSaveNotification: to merge in the changes. See the documentation for details, and other methods of doing it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜