【发布时间】:2020-07-11 22:17:09
【问题描述】:
当我使用 DataCore 存储数据时,有几个限制使我将大量检索到的对象转换为常规类对象,以便我可以定期处理数据。问题是这种行为会产生一些平庸的代码行。
我面临的限制是:
A.缺乏使用 Init() 使用构造函数创建对象的能力
B. 对属性的限制,特别是在属性更改时使用 didSet{}。
例如,您不能在此类中使用 didSet 或创建构造函数:
extension Time {
@nonobjc public class func fetchRequest() -> NSFetchRequest<Time> {
return NSFetchRequest<Time>(entityName: "Time")
}
@NSManaged public var hours: Int
@NSManaged public var minutes: Int
}
我应该如何克服这两个限制?
2.另外,到目前为止,我使用这种代码创建了一个 DataCore 实体对象:
let timeEntity = NSEntityDescription.entity(forEntityName: "Time", in: managedContext)!
let time = NSManagedObject(entity: timeEntity, insertInto: managedContext)
time.setValue(10, forKeyPath: "hours")
time.setValue(20, forKeyPath: "minutes")
这是在 Core Data 中创建实体的适当方式吗?
【问题讨论】: