也许这是一个太简单的问题,但我从其他开发人员那里了解到关于 Objective-C 编程的一件事是自定义 NSNotifications 没有预测顺序。
那么,CoreData 通知背后的机制是什么,这使得 NSManagedObjectContextWillSaveNotification 成为可能,而其余的则以特定的顺序交付?
听力课怎么可能没有收到重叠或错误顺序的通知?
也许这是一个太简单的问题,但我从其他开发人员那里了解到关于 Objective-C 编程的一件事是自定义 NSNotifications 没有预测顺序。
那么,CoreData 通知背后的机制是什么,这使得 NSManagedObjectContextWillSaveNotification 成为可能,而其余的则以特定的顺序交付?
听力课怎么可能没有收到重叠或错误顺序的通知?
我很确定当您更改某些内容并保存时,该顺序是显而易见的:
1. NSManagedObjectContextObjectsDidChangeNotification
2. NSManagedObjectContextWillSaveNotification
3. NSManagedObjectContextDidSaveNotification
您可以使用日志语句轻松检查。根据我的经验,这个订单是 100% 可靠的。
但是,您正确地指出,通过通知丢失关系并不能真正保证交付,更不用说在指定时间。如果您想确定收到某些回调,您应该使用NSFetchedResultsController
委托。这种更紧密的关系几乎可以确保您的更改可以按确定的顺序做出反应。