【发布时间】:2016-09-05 21:39:08
【问题描述】:
我有这个在 Swift 3 中似乎不再工作的内部日期扩展:
internal extension DateComponents {
func to12pm() {
self.hour = 12
self.minute = 0
self.second = 0
}
}
错误信息是:
无法分配给属性:'self' 是不可变的
如何在 Swift 3 中实现这一点?
附加信息(如果需要):由此日期扩展调用:
func endOfWeek(_ weekday: Int) -> Date? {
guard
let cal = Calendar.current,
var comp: DateComponents = (cal as Calendar).components([.weekOfYear], from: self)
else {
return nil
}
comp.weekOfYear = 1
comp.day -= 1
comp.to12pm()
return (cal as NSCalendar).date(byAdding: comp, to: self.startOfWeek(weekday)!, options: [])!
}
现在在 Swift 3 中看起来像这样:
func endOfWeek(_ weekday: Int) -> Date? {
let cal = Calendar.current
var comp = cal.dateComponents([.weekOfYear], from: self)
comp.weekOfYear = 1
comp.day? -= 1
//This does not have the "comp.to12pm()" that the Swift 2 version did
return cal.date(byAdding: comp, to: self.startOfWeek(weekday)!)!
}
【问题讨论】:
标签: swift3 nscalendar