我有一个定义为错误的变量,这是我打印它时的样子:
Optional(Error Domain=com.apple.LocalAuthentication Code=-2 "Canceled by user." UserInfo={NSLocalizedDescription=Canceled by user.})
我想做的是获得 -2 的代码......我该怎么做?
可以先拆开可选的
error
,对比一下-2
的情况
if let error = error {
switch error._code {
case LAError.userCancel.rawValue: // or -2 if you want
// do something
default:
break
}
}
我写了这个小扩展:
extension Error {
var errorCode:Int? {
return (self as NSError).code
}
}
使用:
if error.errorCode == -2 {
//some code
}
您只需要将错误转换为 LAError(本地身份验证错误)并切换其代码属性:
if let error = error as? LAError {
switch error.code {
case .userCancel:
print("userCancel")
default:
print("unknown error")
}
}
我很确定你想在
code
上使用 NSError
属性:
var e = NSError(domain: "Pizza", code: 31, userInfo: nil)
e.code // 31
let errorCode = (error as NSError).code
谢谢提问 我有同样的问题((