swift中的ErrorType - 如何获取错误代码?

时间:2015-11-19 20:10:07

标签: swift nserror

我在完成时传递了一个错误 - 它是一个ErrorType

我可以在调试器中“启动”它,但是如何在swift代码中输出数字-1009。我能找到的唯一一个调用是'debugDescription'。那里有字典吗?

制作ErrorType子类的人基本上不为我所知。

po error
         ▿ Optional(Error Domain=NSURLErrorDomain Code=-1009 "The Internet   connection appears to be offline." UserInfo= {NSErrorFailingURLStringKey=https://xxxxxxxxxx.net/token, _kCFStreamErrorCodeKey=8, NSErrorFailingURLKey=https://xxxxxxxxxxx.net/token, NSLocalizedDescription=The Internet connection appears to be offline., _kCFStreamErrorDomainKey=12, NSUnderlyingError=0x145f7880 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8}}})

2 个答案:

答案 0 :(得分:3)

错误代码来自Objective C NSError。要首先获取错误代码,请尝试将ErrorType投射到NSError。完成后,您可以通过code属性访问代码。你可以这样做:

if let error = error as? NSError {
    print(error.code) // this will print -1009
}

有关详细信息,请参阅documentation

答案 1 :(得分:0)

Xcode 8Swift 3,条件转换始终成功

let errorCode = (error as NSError).code

替代方案

let errorCode = error._code