iOS 爲什麼必須在主線程中操作UI

iOS 爲什麼必須在主線程中操作UI

  • 之前面試時面試官問的問題,一直在找答案,今天在微信團隊的分享中看到了,Copy過來與大家分享

因爲UIKit不是線程安全的。試想下面這幾種情況:

兩個線程同時設置同一個背景圖片,那麼很有可能因爲當前圖片被釋放了兩次而導致應用崩潰。
兩個線程同時設置同一個UIView的背景顏色,那麼很有可能渲染顯示的是顏色A,而此時在UIView邏輯樹上的背景顏色屬性爲B。
兩個線程同時操作view的樹形結構:在線程A中for循環遍歷並操作當前View的所有subView,然後此時線程B中將某個subView直接刪除,這就導致了錯亂還可能導致應用崩潰。
iOS4之後蘋果將大部分繪圖的方法和諸如 UIColor 和 UIFont 這樣的類改寫爲了線程安全可用,但是仍然強烈建議講UI操作保證在主線程中執行。

發佈了37 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章