iOS RunLoop面試題


一 什么是RunLoop?

從字面意思看就是運行循環,其實內部就是do-while循環,這個循環內部不斷地處理各種任務(比 如Source,Timer,Observer)

一個線程對應一個RunLoop,主線程的RunLoop默認已經啟動,子線程的RunLoop得手動啟動(run方法)

RunLoop只能選擇一個Mode啟動,如果當前Mode中沒有任何Source,Timer,Observer,那么就直接退出RunLoop 

 

二 你在開發過程中怎么使用RunLoop?什么應用場景?

開啟一個常駐線程(讓一個子線程不進入消亡狀態,等待其他線程發來的消息,處理其他事件)

在子線程中開啟一個定時器

在子線程中進行一些長期監控

可以控制定時器在特定模式下運行

可以讓某些事件(行為,任務)在特定模式下執行

可以添加observer監聽RunLoop的狀態,比如監聽點擊事件的處理(比如在所有點擊事件前做一些處理)

 

 三 自動釋放池什么時候釋放?

在RunLoop睡眠之前釋放(kCFRunLoopBeforeWaiting)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM