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

问题描述 投票:0回答:6

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

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

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

ios swift
6个回答
18
投票

可以先拆开可选的

error
,对比一下
-2
的情况

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

6
投票

我写了这个小扩展:

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

使用:

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

3
投票

您只需要将错误转换为 LAError(本地身份验证错误)并切换其代码属性:

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

0
投票

我很确定你想在

code
上使用
NSError
属性:

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

0
投票
 let errorCode = (error as NSError).code

-3
投票

谢谢提问 我有同样的问题((

© www.soinside.com 2019 - 2024. All rights reserved.