我需要在NSOperationQueue操作中使用Core Data。我听说为每个NSOperation或Thread创建一个NSManagedObject实例就足够了,然后Core Data不会有多线程问题。它是否正确?为每个新的NSOperation或Thread创建一个新的NSManagedObjectContext是否足够?
当其他MOC在NSOperations中被修改时会自动更新吗?
我需要在NSOperationQueue操作中使用Core Data。我听说为每个NSOperation或Thread创建一个NSManagedObject实例就足够了,然后Core Data不会有多线程问题。它是否正确?为每个新的NSOperation或Thread创建一个新的NSManagedObjectContext是否足够?
当其他MOC在NSOperations中被修改时会自动更新吗?
对于每个线程/操作,您需要一个新的MOC(Managed Object Context)是正确的。为新的上下文提供与您的主上下文相同的持久性存储协调器,然后在保存上下文时处理合并。请参阅我在此之前的答案,这里解释如何执行合并:
其他MOC在其他人在NSOperations中被修改时会自动更新吗?
不需要您需要处理NSManagedObjectContextDidSaveNotification
通知并使用mergeChangesFromContextDidSaveNotification:
合并更改。有关详细信息,请参阅the documentation以及执行此操作的其他方法。