【问题标题】:ErrorType in swift - how do I get an error code out?swift中的ErrorType - 如何获取错误代码?
【发布时间】:2016-02-22 03:49:37
【问题描述】:

我收到一个错误 - 它是一个 ErrorType - 在完成中。

我可以在调试器中“po”它,但是如何在 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}}})

【问题讨论】:

    标签: swift nserror


    【解决方案1】:

    错误代码来自 Objective C NSError。要获取错误代码,首先尝试将ErrorType 转换为NSError。完成此操作后,您可以通过 code 属性访问代码。你可以这样实现:

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

    更多信息,您可以参考documentation

    【讨论】:

      【解决方案2】:

      Xcode 8Swift 3 条件转换总是成功

      let errorCode = (error as NSError).code
      

      另一种选择

      let errorCode = error._code
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-30
        • 1970-01-01
        • 2013-10-17
        • 2018-07-28
        • 2018-11-16
        • 2012-11-07
        • 2020-09-18
        相关资源
        最近更新 更多