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

iPC*_*iPC 8 multithreading ios ios11 xcode9

Xcode 9似乎报告了许多对UIApplication属性的主线程调用.即使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
Run Code Online (Sandbox Code Playgroud)

CGN*_*CGN 5

如果这些报告消息混淆您取消选中它们:

  1. 编辑方案......在此输入图像描述
  2. 在"运行">"诊断"中取消选中"主线程检查器" 在此输入图像描述

  • 拥有该日志而不是禁用该日志的好处......!这样你就会意识到并解决了这个问题. (3认同)
  • 在Xcode 9.3中,我需要在“测试”阶段而不是如上所述的“运行”阶段进行操作。 (2认同)