2015-11-19 53 views
3

我通過了一個錯誤 - 它的一個ErrorType - 完成。swift中的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}}}) 

回答

3

錯誤代碼來自Objective C NSError。要獲得錯誤代碼,請先嚐試將ErrorType轉換爲NSError。在你這樣做後,你可以通過code屬性訪問代碼。你可以這樣實現它:

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

欲瞭解更多信息,可以參考documentation