通过TouchID调用认证后,方法无法正常工作

时间:2014-12-12 11:44:30

标签: ios iphone xcode authentication touch-id

在我按下取消并设置[buttonTouch setHidden:NO];后进行身份验证后,该按钮不会立即显示,尽管按钮事件正常,但显示时间太长。

我的代码:

if ([context canEvaluatePolicy: LAPolicyDeviceOwnerAuthenticationWithBiometrics error:nil]){
        NSLog(@"TouchID Available!");

        [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Authenticate for server login" reply:^(BOOL success, NSError *authenticationError){
            if (success) {
                [self dismissViewControllerAnimated:YES completion:nil];
                //[self VerifyUserInfo:YES];
                NSLog(@"Fingerprint validated.");
            }else{
                NSLog(@"Fingerprint validation failed: %@.", authenticationError.localizedDescription);
                switch (authenticationError.code) {
                    case LAErrorAuthenticationFailed:
                        [self AlertsMessage:@"Authentication is failed"];
                        NSLog(@"Authentication Failed");
                        break;

                    case LAErrorUserCancel:
                        [buttonTouch setHidden:NO];
                        NSLog(@"User pressed Cancel button");
                        break;

                    case LAErrorUserFallback:
                        [buttonTouch setHidden:NO];
                        NSLog(@"User pressed \"Enter Password\"");
                        break;

                    default:
                        [self AlertsMessage:@"Touch ID is not configured"];
                        NSLog(@"Touch ID is not configured");
                        break;
                }

                NSLog(@"Authentication Fails");
            }
        }];

1 个答案:

答案 0 :(得分:1)

呼叫

 dispatch_async(dispatch_get_main_queue(), ^{

                [buttonTouch setHidden:NO];

            });