当我将Error
视为URLError
时,请尝试访问其代码'属性应用程序崩溃。我得到了
EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)。
func somFunc(things: [Thing]?,
error: Error?) {
let errorCopy = (error as? URLError)
let errorCode = errorCopy?.code //Crash
}
我可以理解返回nil
的转换,或者对返回nil
的代码的调用。但我不确定坠机的原因。
当我在尝试阅读'代码'之前打印errorCopy时,我得到:
errorCopy:可选(Foundation.URLError(_nsError:错误 Domain = NSURLErrorDomain Code = 404"(null)"))
答案 0 :(得分:0)
我仍然无法解释崩溃,但我找到了解决方法。将错误转换为NSError,然后读取代码属性。
let errorCopy = (error as? NSError)
let errorCode = errorCopy?.code
然后我可以使用错误代码而不会崩溃:
if errorCode == URLError.cancelled.rawValue {
//Do Something
}