ios - 如何检测核心数据对象关系属性变化

标签 ios objective-c core-data

在我的 FRC 中,我正在获取 帖子 .
帖子 有很多照片 s
我需要检测 的属性何时照片 (totalLikes) 更改,因此我可以更新我的表格 View 。

我知道我可以用

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

但我不确定如何查看该通知是否包含 photo.totalLikes 更改以及该照片属于哪个帖子。

最佳答案

您可以订阅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,就用反比关系即可(建议还是设置一个)。

关于ios - 如何检测核心数据对象关系属性变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28120896/

相关文章:

core-data - 水平 ScrollView 可滑动核心数据对象

ios - 核心数据 NSPredicate For Property of type Array

ios - 使用像 instagram 这样的相机自动裁剪

iOS数据同步和导入

ios - 为什么构建编译失败并且无法识别 *pch 中的 __OBJC__ 宏?

iOS:背景颜色——UITableView 和 Accessory 具有相同的背景颜色

iphone - UITapGestureRecognizer 在 UIImageView 中不工作

ios - 将照片保存到核心数据

ios - 自动调整 UITableView 的字体大小

ios - MFMailComposeViewController 返回和发送按钮不起作用