如何检测核心数据对象关系 属性 变化
How to detect Core Data Object relationship property changes
在我的 FRC 中正在获取 Posts.
Posts有很多照片s
我需要检测 Photo(totalLikes)的 属性 何时发生变化,以便我可以更新我的 tableview。
我知道我可以使用
监控变化
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextChanged:) name:NSManagedObjectContextDidSaveNotification object:nil];
但我不确定如何查看该通知是否包含 photo.totalLikes 更改以及照片属于哪个 Post。
您可以订阅 NSManagedObjectContextWillSaveNotification
。在其 userInfo
中,它传递所有更改的对象(使用 NSUpdatedObjectsKey
获取它们)。然后利用 changedValues
method:
//in a notification handler
for(NSManagedObject *object in notification.userInfo[NSUpdatedObjectsKey]) {
if([object isKindOfClass:[Photo class]]) {
//if you get non-nil value it means that totalLikes has changed
id newLikesValue = [object changedValues][@"totalLikes"];
}
}
如果想知道这张照片属于哪一个Post,用反比关系就可以了(反正还是建议设置一个)
在我的 FRC 中正在获取 Posts.
Posts有很多照片s
我需要检测 Photo(totalLikes)的 属性 何时发生变化,以便我可以更新我的 tableview。
我知道我可以使用
监控变化[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextChanged:) name:NSManagedObjectContextDidSaveNotification object:nil];
但我不确定如何查看该通知是否包含 photo.totalLikes 更改以及照片属于哪个 Post。
您可以订阅 NSManagedObjectContextWillSaveNotification
。在其 userInfo
中,它传递所有更改的对象(使用 NSUpdatedObjectsKey
获取它们)。然后利用 changedValues
method:
//in a notification handler
for(NSManagedObject *object in notification.userInfo[NSUpdatedObjectsKey]) {
if([object isKindOfClass:[Photo class]]) {
//if you get non-nil value it means that totalLikes has changed
id newLikesValue = [object changedValues][@"totalLikes"];
}
}
如果想知道这张照片属于哪一个Post,用反比关系就可以了(反正还是建议设置一个)