我有一个名为Trip
的类,它有一个名为NSDate
的{{1}}属性。我的愿望是确保date
属性始终将时间值设置为当天的开头。我是这样做的:
date
的{{1}}常量,以便我可以使用NSCalendar
方法重置日期值。calendar
属性创建自定义setter方法。但是,我想将startOfDayForDate
属性初始化为今天的开头。
我到目前为止的代码如下所示。
date
此代码a)不初始化date属性,而b)(我发现)在调用setter时导致无限循环。经过进一步研究,我相信定制的getter / setter 严格计算,对吗?
我如何完成我之前提到的内容:
a。)确保date
属性的设置重置为当天的开头
b。)将class Trip {
private let calendar: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
var date: NSDate {
get {
return self.date
}
set {
self.date = calendar.startOfDayForDate(newValue)
}
}
}
属性初始化为今天的开始日期?
答案 0 :(得分:1)
我想你想要一个永远是约会开始日期的日期。用以下内容替换当前的date
变量:
private var privateDate = NSDate()
var date: NSDate {
get {
return privateDate
}
set {
privateDate = calendar.startOfDayForDate(newValue)
}
}
可能有一种更好的方法可以做到这一点,但我猜你的应用程序不会有数以万计的Trip类,所以你应该没问题。