NSManagedObjectContextObjectsDidChangeNotification只有在特定实体发生变化时才能获得通知吗?
我想在我的联系信息或头像更改时更新我的视图,但是使用NSManagedObjectContextObjectsDidChangeNotification我每次在数据库上发生更改时都会收到通知。
使用NSManagedObjectContextObjectsDidChangeNotification可以做到这一点吗?
答案 0 :(得分:4)
我不相信它只能触发特定实体。但是,通知确实提供了有关哪些对象已更改的信息。通知包含一个包含3个键的字典(userInfo):
您可以迭代这些数组的内容,并确定您的特定对象是否已更改。粗略概述如下:
- (void) handleObjectsChangedNotification:(NSNotification*) notification {
// Iterate over all of the deleted objects
for (NSManagedObject* object in notification.userInfo[NSDeletedObjectsKey]) {
}
// Iterate over all of the new objects
for (NSManagedObject* object in notification.userInfo[NSInsertedObjectsKey]) {
}
// Iterate over all of the modified objects
for (NSManagedObject* object in notification.userInfo[NSUpdatedObjectsKey]) {
}
}