Swift 4 从错误中获取错误代码

use*_*331 5 ios swift

我有一个定义为 Error 的变量,这就是我打印它时的样子:

Optional(Error Domain=com.apple.LocalAuthentication Code=-2 "Canceled by user." UserInfo={NSLocalizedDescription=Canceled by user.})
Run Code Online (Sandbox Code Playgroud)

我想要做的是获得-2的代码......我该怎么做?

小智 11

您可以先打开可选项error并比较-2大小写。

if let error = error {
   switch error._code {
      case LAError.userCancel.rawValue: // or -2 if you want
        // do something
      default:
        break
   }
}
Run Code Online (Sandbox Code Playgroud)


dr *_* OX 7

我写了这个小扩展:

extension Error {
    var errorCode:Int? {
        return (self as NSError).code
    }
}
Run Code Online (Sandbox Code Playgroud)

使用:

if error.errorCode == -2 {
    //some code
}
Run Code Online (Sandbox Code Playgroud)