我有一个名为Trip
的类,该类具有一个名为NSDate
的date
属性。我的愿望是确保date
属性始终将时间值设置为一天的开始。我这样做是:
创建一个名为NSCalendar
的calendar
常量,以便我可以使用startOfDayForDate
方法重置日期值。
为date
属性创建自定义的setter方法,该方法调用startOfDayForDate方法。
但是,我想将date
属性初始化为今天的日期的开始。
我到目前为止的代码如下所示。
class Trip {
private let calendar: NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
var date: NSDate {
get {
return self.date
}
set {
self.date = calendar.startOfDayForDate(newValue)
}
}
}
这段代码a)不初始化date属性,b)(我发现)在调用setter时导致无限循环。经过进一步的研究,我相信对定制的吸气剂/定型器进行了严格的计算,对吗?
如何完成我之前提到的内容:
a。)确保将设置为
date
的属性重置为一天的开始,然后b。)初始化
date
属性到今天的开始? 最佳答案
我认为您希望有一个始终是该日期开始的日期。将此替换为当前的date
变量:
private var privateDate = NSDate()
var date: NSDate {
get {
return privateDate
}
set {
privateDate = calendar.startOfDayForDate(newValue)
}
}
也许有一种更好的方法,但是我猜您的应用程序不会有成千上万的Trip类,因此您应该没问题。
关于swift - 使用自定义的setter/getter并初始化属性,以便快速日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31756581/