将 init 和 didSet 与 NSManaged 对象一起使用
Using init and didSet with NSManaged objects
我有以下class,对象是使用CoreData存储的
extension CDate{
@nonobjc public class func fetchRequest() -> NSFetchRequest<CDate> {
return NSFetchRequest<CDate>(entityName: "CDate")
}
@NSManaged public var day: Int
@NSManaged public var month: Int
}
我需要添加一个 属性 ,每次其他属性发生变化时都会更新此属性:
var date:DateComponent
这个 属性 需要在创建 CDate 对象时初始化。在常规 class 中,我会使用 init 构造函数初始化对象,并在月份和日期使用 didSet{} 来更新日期 属性 每当更新月份和日期属性时。
当它没有 init 和 didSet{} 时,我如何在这个 class 中实现它?
一个简单的解决方案是在 CDate
中创建一个 computed-property
,其值将在执行期间计算,并在任何时间点获得更新值。
extension CDate {
var date: Date {
// compute the date and return here.
}
}
我有以下class,对象是使用CoreData存储的
extension CDate{
@nonobjc public class func fetchRequest() -> NSFetchRequest<CDate> {
return NSFetchRequest<CDate>(entityName: "CDate")
}
@NSManaged public var day: Int
@NSManaged public var month: Int
}
我需要添加一个 属性 ,每次其他属性发生变化时都会更新此属性:
var date:DateComponent
这个 属性 需要在创建 CDate 对象时初始化。在常规 class 中,我会使用 init 构造函数初始化对象,并在月份和日期使用 didSet{} 来更新日期 属性 每当更新月份和日期属性时。
当它没有 init 和 didSet{} 时,我如何在这个 class 中实现它?
一个简单的解决方案是在 CDate
中创建一个 computed-property
,其值将在执行期间计算,并在任何时间点获得更新值。
extension CDate {
var date: Date {
// compute the date and return here.
}
}