0

iOS 8 で Touch ID を使用して認証する場合、認証からアプリが認証 VC からログイン VC に移行するまでに数秒かかります。認証成功時のダイレクト メソッド呼び出しを、最初にメイン キューを取得したものに置き換えたところ、超高速になりました。これは、Touch ID が非メイン キューで何らかの作業を行っていることに関係していますが、これに関するドキュメントやガイドラインは見つかりませんでした。すべての Touch ID 関連のコードをメイン キューで実行する必要がありますか? それとも認証の結果のみを実行する必要がありますか?

4

1 に答える 1

2

Apple のサンプル コードreplyを見ると、非同期ブロックを実行している可能性があるため、メイン キューのブロックでUI 更新を実行していることを確認する必要があります。

そのサンプルプロジェクトで結果を処理するために使用される方法は次のとおりです-

- (void)printResult:(UITextView*)textView message:(NSString*)msg
{
    dispatch_async(dispatch_get_main_queue(), ^{
        // update the result in the main queue because we may be calling from asynchronous block
        textView.text = [textView.text stringByAppendingString:[NSString stringWithFormat:@"%@\n",msg]];
        [textView scrollRangeToVisible:NSMakeRange([textView.text length], 0)];
    });
}
于 2014-10-09T10:30:09.540 に答える