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

0md85ypi  于 2023-04-19  发布在  Swift
关注(0)|答案(5)|浏览(198)

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

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

我想做的是得到-2的代码......我该怎么做呢?

pvabu6sv

pvabu6sv1#

您可以先打开可选的error,然后比较-2的情况。

if let error = error {
   switch error._code {
      case LAError.userCancel.rawValue: // or -2 if you want
        // do something
      default:
        break
   }
}
ljsrvy3e

ljsrvy3e2#

我写了这个小扩展:

extension Error {
    var errorCode:Int? {
        return (self as NSError).code
    }
}

使用:

if error.errorCode == -2 {
    //some code
}
vq8itlhq

vq8itlhq3#

你只需要将Error转换为LAError(Local Authentication error)并切换其code属性:

if let error = error as? LAError {
    switch error.code {
    case .userCancel:
        print("userCancel")
    default:
        print("unknown error")
    }
}
j7dteeu8

j7dteeu84#

我很确定你想在NSError上使用code属性:

var e = NSError(domain: "Pizza", code: 31, userInfo: nil)
e.code  // 31
pxq42qpu

pxq42qpu5#

let errorCode = (error as NSError).code

相关问题