ios - 如何提高登录认证的速度?

标签 ios objective-c iphone

我正在努力添加 LocalAuthentication 框架,以允许用户在类似设备上使用指纹进行身份验证。一切正常,但是当用户通过指纹进行身份验证时,需要 10-15 秒才能执行正确的转接,这是典型的情况,还是我对用户进行身份验证的方式有问题? 代码:

-(void)viewDidLoad { [super viewDidLoad]; [self.view setBackgroundColor:[NPSColor NPSBackgroundColor]];
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Register" style:UIBarButtonItemStylePlain target:self action:@selector(onRegisterTapped)]; self.navigationItem.rightBarButtonItem = anotherButton;
LAContext *context = [[LAContext alloc] init];
NSError *error = nil; if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&error]) { [context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Login?" reply:BOOL success, NSError *error {
                      if (error) {

                      }

                      if (success) {
                         [self performSegueWithIdentifier:@"loginSeg" sender:self];

                      } else {

                      }

                  }];
} else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                message:@"Your device cannot authenticate using TouchID."
                                               delegate:nil
                                      cancelButtonTitle:@"Ok"
                                      otherButtonTitles:nil];
[alert show];
} }

最佳答案

因此,执行 segue 可能与 View 操作有关,该操作主要应在主线程上执行。我不太确定,但很可能 evaluatePolicy 方法是在后台线程上执行的。如果是这种情况,您可能希望将 performSegue 放在主线程上。

为此,请使用:

dispatch_async(dispatch_get_main_queue(), ^{
    [self performSegueWithIdentifier:@"loginSeg" sender:self];
});

关于ios - 如何提高登录认证的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27278338/

相关文章:

ios - NSSearchPathForDirectoriesInDomains 的应用程序 ID 更改每个模拟器在真实设备上运行和更新应用程序

ios - 将两个不同类型的数组排序为一个

ios - 如何像 Path Talk 应用程序一样编写设置 View Controller ?

ios - @protocol(DelegateType) 的 Swift 等价物

iphone - 如何使用PageControl在UIScrollView中添加UITableView

iphone - 如何在 sqlite3 中向整个列插入相同的值?

iphone - 创建 View Controller 时,我没有选中 Targeted for iPad 选项。如何使用 XCode 4.2 修复我的 UIView 以针对 iPad 设备?

ios - JSON POST 在 iO 中不起作用

ios - 根据 URL 更改 UIWebView 滚动位置

javascript - iPhone Safari 浏览器,更改 # 哈希 URL,然后 Javascript 警报消息框停止工作