当我将 Error
设置为 URLError
时,然后尝试访问其“代码”属性,应用程序崩溃了。我明白了
EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).
func somFunc(things: [Thing]?,
error: Error?) {
let errorCopy = (error as? URLError)
let errorCode = errorCopy?.code //Crash
}
我可以理解转换返回 nil
,或者调用代码返回 nil
。但我不确定崩溃的原因。
当我在尝试读取“代码”之前打印 errorCopy 时,我得到:
errorCopy: Optional(Foundation.URLError(_nsError: Error Domain=NSURLErrorDomain Code=404 "(null)"))
最佳答案
我仍然无法解释崩溃的原因,但我找到了解决方法。将错误转换为 NSError,然后读取代码属性。
let errorCopy = (error as? NSError)
let errorCode = errorCopy?.code
然后我可以使用错误代码而不会崩溃:
if errorCode == URLError.cancelled.rawValue {
//Do Something
}
关于ios - 转换为 URLError,然后访问 'code' 属性会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43081571/