当我设置/更改同一实体上的另一个属性时,我想更新实体上的Core Data属性...当我使用它时,必须在数据库中设置属性(不是Transient?)请求和排序数据时(不想动态生成数据 - 以避免内存消耗)。
我的实体的自动生成的核心数据扩展程序如下所示,被称为“我的对象”。 (* + CoreDataProperties.swift)
extension MyObject {
::
@NSManaged public var number: String?
@NSManaged public var numberRaw: Int64
::
}
我想弄清楚如何设置' numberRaw'的属性。无论什么时候“#”数字'属性是在我自己的扩展中设置的 - 覆盖似乎不可能(?)
extension MyObject {
private var dummy: Int64 {
get {
self.willAccessValue(forKey: #keyPath(MyObject.numberRaw))
let number = self.primitiveValue(forKey: #keyPath(MyObject.numberRaw)) as? Int64
self.didAccessValue(forKey: #keyPath(MyObject.numberRaw))
return number
}
set {
self.willAccessValue(forKey: #keyPath(MyObject.number))
let number = self.primitiveValue(forKey: #keyPath(MyObject.number)) as! String!
self.didAccessValue(forKey: #keyPath(MyObject.number))
self.willChangeValue(forKey: #keyPath(MyObject.numberRaw))
var value: Int64 = 0
if let digits = number?.digits, digits.isEmpty == false {
value = Int64(digits)!
}
self.setPrimitiveValue(value, forKey: #keyPath(MyObject.numberRaw))
self.didChangeValue(forKey: #keyPath(MyObject.numberRaw))
}
}
}
(我没有在代码中引用'虚拟'对象)
只有'号码'属性已设置/更改。 ' numberRaw'属性只是读取(代码和NSFetchRequest)