![](/img/trans.png)
[英]How do I cast an __NSMallocBlock__ to its underlying type in Swift 3?
[英]How do I retrieve the description of an underlying error in Swift?
鑒於我有以下 Swift 錯誤:
Error Domain=SKErrorDomain Code=0 "UNKNOWN_ERROR" UserInfo={NSLocalizedDescription=UNKNOWN_ERROR, NSUnderlyingError=0x600002dfa430 {Error Domain=ASDErrorDomain Code=500 "Unhandled exception" UserInfo={NSUnderlyingError=0x600002dfa490 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSMultipleUnderlyingErrorsKey=(
"Error Domain=AMSErrorDomain Code=2 \"An unknown error occurred. Please try again.\" UserInfo={NSLocalizedDescription=An unknown error occurred. Please try again.}",
"Error Domain=AKAuthenticationError Code=-7003 \"(null)\""
), NSLocalizedDescription=Authentication Failed, NSLocalizedFailureReason=The authentication failed.}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}}}
這個錯誤的localizedDescription
是UNKNOWN_ERROR
,但是我想檢索名為Authentication Failed
的底層錯誤。
如何在 Swift 中檢索此描述?
以下代碼給出了最后一個潛在錯誤。
extension NSError {
var lastUnderlyingErrorDescription: String {
if let underlyingError = userInfo[NSUnderlyingErrorKey] as? NSError {
return underlyingError.lastUnderlyingErrorDescription // Recursion 😎
}
// LocalizedFailureReason is often - but not always - more expressive than localizedDescription.
return localizedFailureReason ?? localizedDescription
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.