一呐粘、RunLoopObserver 與 Autorelease Pool
UIKit通過(guò)RunLoopObserver在RunLoop兩次Sleep間對(duì)AutoreleasePool進(jìn)行pop和push,將這次Loop中產(chǎn)生的Autorelease對(duì)象釋放。(好像swift中沒(méi)有關(guān)于釋放的問(wèn)題)
二转捕、CFRunLoopMode
RunLoop在同一時(shí)段只能且必須在一種特定Mode下Run
更換Mode時(shí), 需要暫停當(dāng)前的Loop,然后重啟新的Loop
NSDefalutRunLoopMode? ? ? 默認(rèn)狀態(tài).空閑狀態(tài)
UITrackingRunLoopMode? ? ?滑動(dòng)ScrollView
UIInitializationRunLoopMode? ? 私有,App啟動(dòng)時(shí)
NSRunLoopCommonModes? ? ?默認(rèn)包括上面第一和第二
三作岖、參考資料
CF框架源碼(這是一份很重要的源碼,可以看到CF框架的每一次迭代五芝,我們可以下載最新的版本來(lái)分析痘儡,或與以下文章對(duì)比學(xué)習(xí)。目前最新的是CF-1153.18.tar.gz)
RunLoop官方文檔(學(xué)習(xí)iOS的任何技術(shù)枢步,官方文檔都是入門或深入的極好手冊(cè)沉删;我們也可以在Xcode—>Help—>Docementation and API Reference —>搜索RunLoop—> Guides(59)—>《Threading Programming Guide:Run Loops》這篇即是)
深入理解RunLoop(不要看到右邊滾動(dòng)條很長(zhǎng),其實(shí)文章占篇幅2/5左右醉途,下面有很多的評(píng)論矾瑰,可見(jiàn)這篇文章的火熱)
RunLoop個(gè)人小結(jié)(這是一篇總結(jié)的很通俗容易理解的文章)
sunnyxx線下分享RunLoop(這是一份關(guān)于線下分享與討論RunLoop的視頻,備用地址:https://pan.baidu.com/s/1pLm4Vf9)
iPhonedevwiki中的CFRunLoop(commonModes中其實(shí)包含了三種Mode隘擎,我們通常知道兩種殴穴,還有一種是啥,你知道么货葬?)
維基百科中的Event loop(可以看看這篇文章了解一下事件循環(huán))