[英]iOS (Swift): Core data transformable attributes
我有一个采用NSCoding
协议的简单Time
类:
class Time: NSObject, NSCoding {
var hours: Int
func encode(with aCoder: NSCoder) {
aCoder.encode(self.hours, forKey: "hours")
}
public required init?(coder aDecoder: NSCoder) {
guard let hours = aDecoder.decodeObject(forKey: "hours") as? Int
else { return nil }
self.hours = hours
}
init(hours: Int) {
self.hours = hours
}
}
我想成为Watch
实体的Transformable
属性:
final class Watch: NSManagedObject {
@NSManaged public fileprivate(set) var time: Time
}
如下所示:
我已成功将其保存到托管对象上下文中,但是当我重新加载应用程序时, time
属性为nil
。
我在这里想念什么吗? 为什么此属性无法成功保存? 这似乎是其他职位所需要的。
非常感谢您的帮助!
@IraniyaNaynesh在问题注释中的建议是红色鲱鱼。
答案很简单。 更改decodeObject
到decodeInteger
中init?(coder aDecoder: NSCoder)
方法和数据恢复BLOBS
,这不是 nil
和已成功保存,从SQLite数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.