如何从NSManagedObjectContextObjectsDidChangeNotification中排除属性

时间:2010-09-28 12:57:27

标签: iphone objective-c cocoa macos core-data

我在我的应用程序中使用CoreData并依赖于NSManagedObjectContextObjectsDidChangeNotification。我已经为所有实体子类化了NSManagedObject并创建了属性和@dynamic访问器。是否可以从通知中排除特定实体的某些属性?如果是这样,我该怎么做? : - )

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您无法阻止针对某些实体实例的某些属性触发上下文更改通知,但您可以获取有关更改性质的信息并改为响应。

使用[notification userInfo]根据一般更改类型(插入,更新,删除)获取包含已更改对象列表的字典。示例(从this answer拉出):

NSSet * deletedObjects = [userInfoDictionary objectForKey:NSDeletedObjectsKey];

然后,您可以向托管对象询问其-changedValues,并在返回的字典的键包含(或不包含)有趣的属性键时采取适当的操作。