在 Swift 中向核心数据模型添加一个只读属性。 XCDataModel 中不存在的
Adding one read only attribute to Core Data Model in Swift. Which doesn't exist in XCDataModel
通过 objective c 中的 @synthesize 和 @dynamic 可以轻松地向 XCDataModel 中不存在的实体添加属性。
请在 swift.
中指导如何实现这一点
@NSManaged public var salesPrice: NSNumber?
public var totalVal: NSNumber {
get {
return salesPrice ?? NSNumber(value: 0)
}
}
这里的销售价格是管理的,但 totalVal 不是管理的,也不存在于 xcDataModel 中。我遇到了崩溃'该实体不符合访问 totalVal 的键 'totalVal' 的键值编码。
if let coreObj = indItem.parentObj.value(forKey: keyPath) { }
此处发生崩溃。
- 'indItem.parentObj' 这是正确的对象(我仔细检查过)
- 'keyPath'是'totalVal'(我抄对了)
要支持 Swift 中声明的类型的键值编码,您必须使用 @objc
关键字对其进行标记:
@objc public var totalVal: NSNumber {
通过 objective c 中的 @synthesize 和 @dynamic 可以轻松地向 XCDataModel 中不存在的实体添加属性。 请在 swift.
中指导如何实现这一点@NSManaged public var salesPrice: NSNumber?
public var totalVal: NSNumber {
get {
return salesPrice ?? NSNumber(value: 0)
}
}
这里的销售价格是管理的,但 totalVal 不是管理的,也不存在于 xcDataModel 中。我遇到了崩溃'该实体不符合访问 totalVal 的键 'totalVal' 的键值编码。
if let coreObj = indItem.parentObj.value(forKey: keyPath) { }
此处发生崩溃。
- 'indItem.parentObj' 这是正确的对象(我仔细检查过)
- 'keyPath'是'totalVal'(我抄对了)
要支持 Swift 中声明的类型的键值编码,您必须使用 @objc
关键字对其进行标记:
@objc public var totalVal: NSNumber {