JPC*_*JPC 8 core-data objective-c nsmanagedobject nsmanagedobjectcontext
是否可以找到保存后在托管对象上保存的属性?例如,我有人在监听托管对象上下文保存(NSManagedObjectContextDidSaveNotification),我想知道对象的哪些属性已保存.
它NSManagedObjectContextDidSaveNotification确实包含了与服务器同步所需的所有三位信息.检查[notification userInfo],你会发现里面三组:NSInsertedObjectsKey,NSUpdatedObjectsKey,和NSDeletedObjectsKey
如果您想知道实体上的哪些属性已更改,则需要您使用KVO自行跟踪它们.我建议不要这样做,因为只需将整个对象推到服务器上,这种努力水平的可能性就很小.
进一步探讨:
从NSManagedObjectContextWillSaveNotification你可以循环遍历每一组并引用该changedValues方法.您可以在收到该词典之前保留对该词典的引用NSManagedObjectContextDidSaveNotification,然后处理更改.对我来说听起来仍然很沉重.
你的最终目标是什么?!?!
如果您正在尝试确定要推送到服务器的内容,那么处于属性级别的内容太低.您应该在实体级别进行同步.
如果您只是想在应用程序内部保持一些内部一致性,那么您正在思考方式,方式太低.这是一个已解决的问题.核心数据解决了它.
为什么不在他们快要得救的时候去抓住他们呢?订阅NSManagedObjectContextWillSaveNotificationinsertedObjects并updatedObjects检查deletedObjects.NSManagedObjectContext
更新:
更简单的是,获取用户信息NSManagedObjectContextDidSaveNotification
从文档中:
通常,在线程 A 上,您注册托管对象上下文保存通知 NSManagedObjectContextDidSaveNotification。当您收到通知时,其用户信息字典包含带有在线程 B 上插入、删除和更新的托管对象的数组。
| 归档时间: |
|
| 查看次数: |
2612 次 |
| 最近记录: |