繁体   English   中英

主线程检查器:在后台线程上调用的UI API:-[UIApplication委托]

[英]Main Thread Checker: UI API called on a background thread: -[UIApplication delegate]

Xcode 9似乎报告了许多对UIApplication属性的Main线程调用。 即使未更新UI,由于会扩展日志以生成默认环境,因此特别麻烦。

4   TestApp                             0x0000000101c262e0 __39-[ViewController viewDidLoad]_block_invoke + 196
5   libdispatch.dylib                   0x0000000102279654 _dispatch_call_block_and_release + 24
6   libdispatch.dylib                   0x0000000102279614 _dispatch_client_callout + 16
7   libdispatch.dylib                   0x0000000102289008 _dispatch_queue_serial_drain + 716
8   libdispatch.dylib                   0x000000010227ce58 _dispatch_queue_invoke + 340
9   libdispatch.dylib                   0x000000010228a1c4 _dispatch_root_queue_drain_deferred_wlh + 412
10  libdispatch.dylib                   0x00000001022917fc _dispatch_workloop_worker_thread + 868
11  libsystem_pthread.dylib             0x00000001ac6771e8 _pthread_wqthread + 924
12  libsystem_pthread.dylib             0x00000001ac676e40 start_wqthread + 4

如果这些报告消息使您感到困惑,请取消选中它们

  1. 编辑方案... 在此处输入图片说明
  2. 在运行>诊断中取消选中“主线程检查器” 在此处输入图片说明

还要检查ARKit模板Xcode项目Main Thread Checker日志控制台

如果从另一个线程调用UIApplication或UIApplicationDelegate方法,则可以像在CGN Answer中一样禁用检查线程,但是它将完全禁用此检查器。 您也可以将必要的子类化,并在主线程上调用超类的方法。 这样,您仍然可以在代码的其他地方使用Main Thread Sanitizer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM