';触摸锁定';在iOS 11.0中被弃用:使用LAErrorBiometryLockout
我在iOS 11应用程序中使用touch id,我使用LA来确定身份验证是否失败,用户是否取消并使用Fallback,如下所示:';触摸锁定';在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
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查看匹配的错误。