This question already has answers here:
Get day of week using NSDate

(18 个回答)


6年前关闭。




我正在尝试获取一周中的当前日期,以便根据日期更改图像。我的当前代码出现错误:“条件绑定(bind)中的绑定(bind)值必须是可选类型。”我对 swift 和 ios 还很陌生,所以我不太确定要改变什么。
   func getDayOfWeek()->Int? {
    if let todayDate = NSDate() {
        let myCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
        let myComponents = myCalendar?.components(.WeekdayCalendarUnit, fromDate: todayDate)
        let weekDay = myComponents?.weekday
        return weekDay
    } else {
        return nil
    }
}

最佳答案

您的错误消息是由于在行中
if let todayDate = NSDate()if let ... 在 swift 中有特殊的意义。编译器尝试将可选变量绑定(bind)到常量。由于 NSDate() 不返回可选值,这是一个错误。

离开 if ,它应该可以工作:

func getDayOfWeek()->Int? {
   let todayDate = NSDate()
   let myCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
   let myComponents = myCalendar?.components(.WeekdayCalendarUnit, fromDate: todayDate)
   let weekDay = myComponents?.weekday
   return weekDay
 }

关于ios - 在 Swift 中获取星期几,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28861091/

10-16 14:06