Ios 如何检测核心数据对象关系属性更改

Ios 如何检测核心数据对象关系属性更改,ios,objective-c,core-data,Ios,Objective C,Core Data,在我的FRC中,我获取帖子 帖子有许多照片 我需要检测Photo(totalikes)的属性何时更改,以便更新我的tableview 我知道我可以使用 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextChanged:) name:NSManagedObjectContextDidSaveNotification object:nil]; 但我不知道如何查看该通知是否包含照片。Tot

在我的FRC中,我获取帖子
帖子有许多照片 我需要检测Photo(totalikes)的属性何时更改,以便更新我的tableview

我知道我可以使用

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextChanged:) name:NSManagedObjectContextDidSaveNotification object:nil];

但我不知道如何查看该通知是否包含照片。Totalikes更改,然后查看该照片属于哪个帖子。

您可以订阅
NSManagedObjectContextWillSaveNotification
。在其
userInfo
中,它传递所有更改的对象(使用
NSUpdatedObjectsKey
获取它们)。然后,使用
changedvalue

如果你想知道这张照片属于哪一篇文章,只需使用反向关系(建议还是设置一个)

//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"];
    }
}