如何从 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 中排除属性的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的核心数据保存缓慢?

在 macOS 中初始化 CoreData

如何从其他面板从 JTextField 获取输入

如何从外部从 GitHub 加载 JavaScript 文件? [复制]

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数

如何从 Firebase 获取所有设备令牌?