Touch ID 会减慢应用程序速度或导致崩溃

Touch ID slows down the app or crash

我真的不知道我的应用程序发生了什么,但自从我添加了 touchid 功能后,应用程序比以前慢了,并且出现了奇怪的文字。 我在主控制器之前添加了一个 UiViewController ,所以我可以在那里检查而不向用户显示任何数据,直到他使用 touchid 登录成功。 好的,在我的 iphone 6s 上也是如此,但是现在它非常非常慢并且在 touchid 函数成功后它在我的控制台上出现了这个:

success!!!!
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView bounds]
PID: 8460, TID: 1642991, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 21
Backtrace:
4   LAMer                               0x000000010c035d96 _T0So16UIViewControllerC5LAMerE14displaySpinnerSo0A0CAF6onView_tFZ + 54
5   LAMer                               0x000000010c060a85 _T05LAMer18AuthViewControllerC13viewDidAppearySbFySbcfU_ + 245
6   LAMer                               0x000000010c060e4e _T05LAMer18AuthViewControllerC13viewDidAppearySbFySbcfU_TA + 62
7   LAMer                               0x000000010c0374d0 _T0So16UIViewControllerC5LAMerE25authenticationWithTouchIDyySbc10completion_tFySb_s5Error_pSgtcfU_ + 336
8   LAMer                               0x000000010c037c2c _T0So16UIViewControllerC5LAMerE25authenticationWithTouchIDyySbc10completion_tFySb_s5Error_pSgtcfU_TA + 108
9   LAMer                               0x000000010c037cb3 _T0Sbs5Error_pSgIxyx_SbSo7NSErrorCSgIyByy_TR + 115
10  LocalAuthentication                 0x000000010f42edf6 __50-[LAContext evaluatePolicy:localizedReason:reply:]_block_invoke_2 + 72
11  LocalAuthentication                 0x000000010f42e2a9 __42-[LAContext evaluatePolicy:options:reply:]_block_invoke_2 + 615
12  LocalAuthentication                 0x000000010f4293df __52-[LAClient evaluatePolicy:options:uiDelegate:reply:]_block_invoke + 224
13  libdispatch.dylib                   0x00000001124dc2f7 _dispatch_call_block_and_release + 12
14  libdispatch.dylib                   0x00000001124dd33d _dispatch_client_callout + 8
15  libdispatch.dylib                   0x00000001124e2251 _dispatch_queue_override_invoke + 1458
16  libdispatch.dylib                   0x00000001124e9102 _dispatch_root_queue_drain + 772
17  libdispatch.dylib                   0x00000001124e8da0 _dispatch_worker_thread3 + 132
18  libsystem_pthread.dylib             0x00000001129a81ca _pthread_wqthread + 1387
19  libsystem_pthread.dylib             0x00000001129a7c4d start_wqthread + 13
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView initWithFrame:]
PID: 8460, TID: 1642991, Thread name: (none), Queue name: com.apple.root.default-qos, QoS: 21
Backtrace:
4   LAMer                               0x000000010c03802d _T0So6UIViewCABSC6CGRectV5frame_tcfcTO + 77
5   LAMer                               0x000000010c036064 _T0So6UIViewCABSC6CGRectV5frame_tcfC + 100
6   LAMer                               0x000000010c035db3 _T0So16UIViewControllerC5LAMerE14displaySpinnerSo0A0CAF6onView_tFZ + 83
7   LAMer                               0x000000010c060a85 _T05LAMer18AuthViewControllerC13viewDidAppearySbFySbcfU_ + 245
8   LAMer                               0x000000010c060e4e _T05LAMer18AuthViewControllerC13viewDidAppearySbFySbcfU_TA + 62
9   LAMer                               0x000000010c0374d0 _T0So16UIViewControllerC5LAMerE25authenticationWithTouchIDyySbc10completion_tFySb_s5Error_pSgtcfU_ + 336
10  LAMer                               0x000000010c037c2c _T0So16UIViewControllerC5LAMerE25authenticationWithTouchIDyySbc10completion_tFySb_s5Error_pSgtcfU_TA + 108
11  LAMer                               0x000000010c037cb3 _T0Sbs5Error_pSgIxyx_SbSo7NSErrorCSgIyByy_TR + 115
12  LocalAuthentication                 0x000000010f42edf6 __50-[LAContext evaluatePolicy:localizedReason:reply:]_block_invoke_2 + 72
13  LocalAuthentication                 0x000000010f42e2a9 __42-[LAContext evaluatePolicy:options:reply:]_block_invoke_2 + 615
14  LocalAuthentication                 0x000000010f4293df __52-[LAClient evaluatePolicy:options:uiDelegate:reply:]_block_invoke + 224
15  libdispatch.dylib                   0x00000001124dc2f7 _dispatch_call_block_and_release + 12
16  libdispatch.dylib                   0x00000001124dd33d _dispatch_client_callout + 8
17  libdispatch.dylib                   0x00000001124e2251 _dispatch_queue_override_invoke + 1458
18  libdispatch.dylib                   0x00000001124e9102 _dispatch_root_queue_drain + 772
19  libdispatch.dylib                   0x00000001124e8da0 _dispatch_worker_thread3 + 132
20  libsystem_pthread.dylib             0x00000001129a81ca _pthread_wqthread + 1387
21  libsystem_pthread.dylib             0x00000001129a7c4d start_wqthread + 13

在此之后,主控制器出现并且该控制器的数据正确登录到控制台。 我可以问你上面出现在我的控制台中的代码是什么吗,如果你已经知道 touchid make app 做这些事情..

谢谢指教

这看起来根本不像是 TouchID 问题。您正在后台线程上执行 UI 操作。您必须在主线程上调用所有 UI。

查看最近对您的代码所做的更改,看看您更改了什么。

缓慢 and/or 无响应是典型的 UI 后台线程 问题。

Main Thread Checker