【问题标题】:Swift 2.1 DatePicker NSDate Error Nil Unwrapping Optional Value?Swift 2.1 DatePicker NSDate Error Nil Unwrapping Optional Value?
【发布时间】:2016-01-30 16:21:51
【问题描述】:

我有一门课程,我正在尝试设置开始和结束日期:

class Dates {
    var beginDateTime = NSDate()
    var endDateTime = NSDate()    
}

在我的视图控制器中,我创建了它的一个实例:

var dates: Dates!

我还有两个日期选择器:

@IBOutlet weak var datePicker1: UIDatePicker!
@IBOutlet weak var datePicker2: UIDatePicker!

然后当尝试在导航序列中设置这些时间时...

dates.beginDateTime = datePicker1.date
dates.endDateTime = datePicker2.date

我明白了:

致命错误:在展开可选值时意外发现 nil

这里没有可选值...我不明白。日期已定。为什么我会收到此错误?这里没有零值。我什至在 print(datePicker1.date) 命令中对它们进行了测试,它们是确定的。

事实上,我在这里的函数中有附加代码,可以在 viewDidLoad 上以编程方式为用户设置日期,效果很好:

func setDatePicker(datePicker: UIDatePicker) {
    datePicker.minimumDate = NSDate()
    let calendar:NSCalendar = NSCalendar.currentCalendar()
    let components = calendar.components([NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute], fromDate: NSDate())
    if count > 0 {
        components.hour = 23
        components.minute = 30
    } else {
        components.hour = 19
        components.minute = 00
    }
    let date = calendar.dateFromComponents(components)!
    datePicker.setDate(date, animated: true)
    count++
}

【问题讨论】:

    标签: ios datepicker swift2


    【解决方案1】:

    日期在您的日期选择器中设置,但您的 dates 对象可能为零。您刚刚声明了dates 对象,因此除非您分配内存并对其进行初始化,否则它将为零。做

    var dates = Dates()
    

    这将修复该错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多