我的应用程序有一个典型的核心数据后端,其中包含父对象和子NSManagedObjectContext
对象。
父级NSManagedObjectContext
moc1具有.NSMainQueueConcurrencyType
孩子moc2有. NSManagedObjectContext
_NSPrivateQueueConcurrencyType
我还有一个观察moc1的对象X。该通知必须到达主线程。NSManagedObjectContextObjectsDidChangeNotification
问题:假设在后台队列上对moc2进行了更改,然后[moc2 save:]
被调用。然后,您如何在主线程上向对象 X 发送消息并保证它是在收到之后NSManagedObjectContextObjectsDidChangeNotification
而不是之前收到的?是否足以调用:
[moc2 save:NULL]; // causes X to get NSManagedObjectContextObjectsDidChangeNotification for moc1...eventually
dispatch_async(dispatch_get_main_queue(), ^{
[X iHopeYouGetThisAfterYouGotTheNotification];
};