iOS中的RunLoopoop
使用場景線程
1.保持線程的存活,而不是線性的執行完任務就退出了orm
<1>不開啓RunLoop的線程server
<2>開啓RunLoop的線程文檔
(1)實驗用self來持有子線程form
(2)實驗讓線程不結束任務致使進入死亡狀態]循環
(3)Event Loop模式方法
(4)初步嘗試使用RunLoopim
(5)初體驗產生的疑問思考
①爲何老是要把RunLoop和線程放在一塊兒來說?
②如何建立RunLoop?
③線程默認不開啓RunLoop,爲何咱們的App或者說主線程卻能夠一直運行而不會結束?
④RunLoop能正常運行的條件是什麼?
⑤除了[runLoop run]還有那些方法啓動RunLoop?
(6)初體驗結論
2.保持線程的存活後,讓線程在咱們須要的時候響應消息。
3.讓線程定時執行某任務(Timer)
<1>初識NSTimer遇到的坑
<2>使用NSTimer遇到的坑
<3>NSTimer致使的ViewController沒法釋放問題
<4>performSelecter:afterDelay:
4.監聽Observer達到一些目的
關於RunLoop的釋放問題(RunLoop帶autoreleasepool的正確寫法)
<1>分析
<2>須要用while循環控制的RunLoop
<3>不須要用while循環控制的RunLoop
<4>關於主線程中autoreleasepool的題外話
關於子線程RunLoop切換Mode的思考
本文最大幹貨,子線程中模擬主線程DefaultMode與TrackingMode的切換,長代碼預警
參考文檔
<1>RunLoop
<2>autoreleasepool