';触摸锁定';在iOS 11.0中被弃用:使用LAErrorBiometryLockout

';触摸锁定';在iOS 11.0中被弃用:使用LAErrorBiometryLockout,ios,swift,Ios,Swift,我在iOS 11应用程序中使用touch id,我使用LA来确定身份验证是否失败,用户是否取消并使用Fallback,如下所示: import Foundation import LocalAuthentication class TouchIDAuth { let context = LAContext() func canEvaluatePolicy() -> Bool { return context.canEvaluatePolicy(.dev

我在iOS 11应用程序中使用touch id,我使用LA来确定身份验证是否失败,用户是否取消并使用Fallback,如下所示:

import Foundation
import LocalAuthentication

class TouchIDAuth {

    let context = LAContext()

    func canEvaluatePolicy() -> Bool {
        return context.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics, error: nil)
    }

    func authenticateUser(completion: @escaping (NSNumber?) -> Void) {

        guard canEvaluatePolicy() else {
            completion(0)
            return
        }

        context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,
                               localizedReason: "Logging in with Touch ID") { (success, evaluateError) in
                                if success {
                                    DispatchQueue.main.async {
                                        completion(nil)
                                    }
                                } else {

                                    let response: NSNumber

                                    switch evaluateError {
                                    case LAError.authenticationFailed?:
                                        response = 2
                                    case LAError.userCancel?:
                                        response = 3
                                    case LAError.userFallback?:
                                        response = 4
                                    default:
                                        response = 1
                                    }

                                    completion(response)

                                }
        }
    }

}
上述代码有效,但我收到以下警告:

iOS 11.0中不推荐使用“touchIDLockout”:使用LAErrorBiometryLockout

“touchIDNotEnrolled”在iOS 11.0中被弃用:使用LaErrorBiometrynrolled

iOS 11.0中不推荐使用“touchIDNotAvailable”:使用LAErrorBiometryNotAvailable


现在我知道这些都来自LAError,我的问题是,如何更新我的switch case语句来检查身份验证失败、用户取消和使用回退?

我已经看到了这个答案,但它没有帮助。我正在尝试使用kLAErrorAuthenticationFailed,但它返回一个int,而不是一个与evaluateErrorHave查看匹配的错误。