我有以下功能。我知道我还应该为dateValue为零的情况提供一个回报。但是编译器不允许返回nil。我想的是什么扭曲?
func dateFromIsoString(dateString: String) -> NSDate {
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
let dateValue: NSDate? = dateFormatter.dateFromString(dateString)
if let dateValue = dateValue {
return dateValue
}else{
//return what?
}
}
答案 0 :(得分:6)
您不能返回nil
,因为您没有返回可选项 - 因此请将返回类型更改为NSDate?
。
因为,如果dateFromString
无法解析字符串,则无论如何都会返回nil
,因此您无需担心if let
语句。相反,你可以写:
return dateFormatter.dateFromString(dateString)