假设我有以下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中检索此描述?
发布于 2022-04-24 18:42:08
下面的代码给出了最后一个基础错误。
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
}
}
https://stackoverflow.com/questions/71989953
复制相似问题