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
    });
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容