如何从 NSManagedObjectContextObjectsDidChangeNotification 中排除属性
Posted
技术标签:
【中文标题】如何从 NSManagedObjectContextObjectsDidChangeNotification 中排除属性【英文标题】:How to exclude properties from NSManagedObjectContextObjectsDidChangeNotification 【发布时间】:2010-09-28 12:57:26 【问题描述】:我在我的应用程序中使用 CoreData 并依赖于 NSManagedObjectContextObjectsDidChangeNotification。我已经为我的所有实体子类化了 NSManagedObject 并创建了属性和@dynamic 访问器。是否可以从通知中排除特定实体的某些属性?如果是这样,我会怎么做? :-)
感谢您的帮助!
【问题讨论】:
您想更改属性而不触发NSManagedObjectContextObjectsDidChangeNotification
?
【参考方案1】:
您无法阻止针对某些实体实例的某些属性触发上下文更改通知,但您可以获取有关更改性质的信息并对其做出响应。
使用 [notification userInfo] 获取一个字典,其中包含基于一般更改类型(插入、更新、删除)的更改对象列表。示例(来自this answer):
NSSet * deletedObjects = [userInfoDictionary objectForKey:NSDeletedObjectsKey];
然后,您可以向托管对象询问其-changedValues,并在返回的字典的键包含(或不)感兴趣的属性键时采取适当的措施。
【讨论】:
以上是关于如何从 NSManagedObjectContextObjectsDidChangeNotification 中排除属性的主要内容,如果未能解决你的问题,请参考以下文章
如何从外部从 GitHub 加载 JavaScript 文件? [复制]