我正在尝试创建具有Face ID功能的应用。但是,当我尝试处理错误代码时,我只能捕获LAErrorUserCancel。我无法捕获其他错误代码,例如LAErrorAuthenticationFailed。
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"asd" reply:
^(BOOL success, NSError *authenticationError) {
if (success) {
[[NSOperationQueue mainQueue] addOperationWithBlock:^(void){
[NSTimer scheduledTimerWithTimeInterval:1/40
target:self
selector:@selector(registerTouchID)
userInfo:nil
repeats:NO];
}];
}
else {
switch (authenticationError.code) {
case LAErrorAuthenticationFailed:
dispatch_async(dispatch_get_main_queue(), ^{
[self TouchFail];
});
break;
case LAErrorUserCancel:
NSLog(@"User pressed Cancel button");
break;
case LAErrorUserFallback:
NSLog(@"User pressed \"Enter Password\"");
break;
case LAErrorBiometryLockout:
dispatch_async(dispatch_get_main_queue(), ^{
[self LockoutAlert];
});
break;
default:
break;
}
}
}];
您可以通过错误获得错误代码。 _code = -6或-4这样...
只需在日志中使用PO语句即可获取错误并进行相应处理。