Xcode9:Main Thread Checker: UI API called on a background thread

1、问题描述:Xcode9 运行会打印一些线程的日志,比如下面这些

Main Thread Checker: UI API called on a background thread: -[UIView setHidden:]
PID: 31062, TID: 6628490, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:

2、问题原因:Xcode9新增加了Main thread checker的机制,当需要在主线程中执行的而没有放在主线程,会给出提示,典型的就是UI。

3、问题解决:
最直接的就是关掉这个功能,不勾选下图红色框的选项。烦倒是不会了,但是还是不建议这样子做,万一真的有哪些是需要在主线程完成的工作而没有做导致crash就悲剧了

关闭检查开关

所以呢,还是勾选上好,有问题一个一个解决掉,勾选上之后,有问题的代码行就会被定位

打开断点调试开关
dispatch_async(dispatch_get_main_queue(), ^(void) {  
      //todo
    });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容