【发布时间】:2019-02-23 11:53:14
【问题描述】:
我有以下功能,我需要标签根据所选日期更新周数。日期选择由 UIDatePicker 进行。
如果我写 print(pickedDate) 我会得到 UIDatePicker 刚刚选择的日期,所以这似乎工作正常。
但是,如果我 print(selectedDate) 我得到 nil,因此公式中出现错误 Fatal error: Unexpectedly found nil while unwrapping an Optional value
这是我的代码:
func selectWeek () {
let formatter = DateFormatter()
let pickedDate = dateEntry.text
let selectedDate = formatter.date(from: pickedDate!)
if (weekTwoIntervalJan! ... weekThreeIntervalJan!).contains(selectedDate!) {
weekNrLabel.text = "Week 3"
}
else if (weekThreeIntervalJan! ... weekFourIntervalJan!).contains(selectedDate!) {
weekNrLabel.text = "Week 4"
}
else if (startDateFebDate! ... weekOneIntervalFeb!).contains(selectedDate!) {
weekNrLabel.text = "Week 1"
}
else if (weekOneIntervalFeb! ... weekTwoIntervalFeb!).contains(selectedDate!) {
weekNrLabel.text = "Week 2"
}
else if (weekTwoIntervalFeb! ... weekThreeIntervalFeb!).contains(selectedDate!) {
weekNrLabel.text = "Week 3"
}
else if (weekThreeIntervalFeb! ... weekFourIntervalFeb!).contains(selectedDate!) {
weekNrLabel.text = "Week 4"
}
else {
print("fail")
}
【问题讨论】:
-
formatter.date(from: pickedDate!)和后来的selectedDate!,会导致崩溃,因为它是零。pickedDate的价值是什么?您需要设置 dateFormatter 的format。 -
pickedDate 返回 "String? "Wednesday, February, 27"。我尝试使用不同的日期格式,但这并没有什么不同
-
DateFormatter 不是一个神奇的工具。你需要设置它的格式。
-
我现在将格式设置为 formatter.dateFormat = "EEEE, MMMM, dd"。仍然收到错误 - 致命错误:在展开可选值时意外发现 nil
标签: swift date nsdateformatter dateformatter