返回'if let'和其他内部

时间:2015-05-08 08:57:44

标签: swift

我有以下功能。我知道我还应该为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?
    }
}

1 个答案:

答案 0 :(得分:6)

您不能返回nil,因为您没有返回可选项 - 因此请将返回类型更改为NSDate?

因为,如果dateFromString无法解析字符串,则无论如何都会返回nil,因此您无需担心if let语句。相反,你可以写:

return dateFormatter.dateFromString(dateString)