错误处理:无法在Swift 2中转换类型

时间:2015-11-25 17:30:03

标签: ios xcode swift

如果函数参数的类型不正确,如何捕获错误?

功能:

func returnBool(someBool: Bool) -> Bool {
    return someBool
}

假设:

returnBool("不是Bool")

结果:

"无法转换类型的值..."

我想看到的内容:

false,nil等+没有错误

1 个答案:

答案 0 :(得分:0)

编译器不允许你这样做。如果你想检查一些param,它可以是任何对象,那么使用AnyObject并用guard语句检查它:

func returnBool(someBool: AnyObject) -> Bool {
    guard someBool is Bool else { return false }
    return true
}
let result1 = returnBool("test") // false
let result2 = returnBool(false) // true
let result3 = returnBool(1) // true

func returnBool(someBool: AnyObject) -> Bool? {
    guard someBool is Bool else { return nil }
    return someBool as? Bool
}
let result1 = returnBool("test") // nil
let result2 = returnBool(false) // false
let result3 = returnBool(1) // true