繁体   English   中英

如何获取 NSPropertyDescription 属性的新旧值

[英]How to get old and new value of property of NSPropertyDescription

我设置了一个 CoreData 堆栈,能够检索特定对象的编辑历史记录等等。 我什至可以确定哪个属性发生了变化。 但是,我正在努力获取该物业的新旧价值。 请参阅下面的我的代码。 这甚至可能吗? 如果是这样,如何?

func apply(_ changeItem: NSPersistentHistoryChange) {
    switch changeItem.changeType {
    case .update:
        guard let updatedProperties = changeItem.updatedProperties else { break }

        updatedProperties.forEach { (property) in
            // Get old and new value here
        }
    case .insert:
        // ...
    }
    // ...

}

我面临的问题:

  • 我无法识别目标商店中要更新的记录。

解决方法:

  • 在实体中使用标识符字段
  • 这样您就可以根据标识符进行查询并使用新值更新目标存储
  • 标识符不会/不应该在插入后改变

也许这不是你的情况,但我猜你有NSPersistentHistoryChangeNSPersistentHistoryTransation 在这种情况下,您可以通过将其合并到上下文中来一次性合并来自该事务的全部更改示例:

 guard let userInfo = transaction.objectIDNotification().userInfo else { return }           
NSManagedObjectContext.mergeChanges(fromRemoteContextSave: userInfo, into: [context])

在您的特定 secnerio 中,我没有找到如何在NSPersistentHistoryChange找到旧值。 也许userInfo包含此信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM