0
我必須出現在斯威夫特3不再工作,這種內部日期延長:斯威夫特3:內部分機設置時間
internal extension DateComponents {
func to12pm() {
self.hour = 12
self.minute = 0
self.second = 0
}
}
的錯誤信息是:
Cannot assign to property: 'self' is immutable
如何實現這在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: [])!
}
現在看起來是這樣的斯威夫特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)!)!
}
謝謝。我還發現我可以在「func to12pm」之前添加「mutable」。兩者都能達到同樣的目的嗎? –
是的,它不會有任何區別 –