1
我寫了一個函數,根據今天的日期得到下一個星期一的NSDate
,但是當我嘗試調用此函數時,我得到了一個runtime error
。Swift:試圖獲取NSDate將來的日期時獲取EXC_BAD_INSTRUCTION
我收到一個錯誤,指出:
主題1:EXC_BAD_INSTRUCTION在這條線(代碼= EXC_I386_INVOP,子碼=爲0x0)
:
calendar?.locale = NSLocale.currentLocale()
這是怎麼回事??我需要採取哪些措施來解決這個問題?
func getNextMonday() -> NSDate {
let today = NSDate()
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
calendar!.locale = NSLocale.currentLocale()
let components = calendar!.components(.YearCalendarUnit | .WeekOfYearCalendarUnit | .HourCalendarUnit | .MinuteCalendarUnit | .SecondCalendarUnit, fromDate: today)
components.weekday = 2
components.weekOfYear = components.weekOfYear + 1
components.hour = 8
components.minute = 0
components.second = 0
if let nextMonday = calendar?.dateFromComponents(components) {
return nextMonday
}
else {
return today
}
}
你試過展開可選的日曆'日程表.locale = ...'!? – Eimantas 2014-12-04 08:00:39
@Eimantas/foreheadslap就是這樣!讓它成爲答案,我可以接受!謝謝。 – 2014-12-04 08:02:47
你確定這解決了這個問題嗎? (我看不出這有什麼不同。)在我看來,真正的錯誤是你應該使用.WeekOfYearCalendarUnit而不是.WeekCalendarUnit。 – 2014-12-04 08:10:34