RunLoop

RunLoop,循環(huán)運(yùn)行的意思,處理APP中的各種事件,讓程序保持運(yùn)行,這也就是我們應(yīng)用能夠一直保持運(yùn)行的原因啦。接下來我就說一下runloop在平時的編程中應(yīng)該怎么用才能提高程序的性能。

runloop的好處是,需要運(yùn)行的時候運(yùn)行,不需要運(yùn)行的時候就處于休息狀態(tài),節(jié)省了CPU的資源,這樣當(dāng)然就能提高程序的性能啦~~~

runloop的使用,runloop的創(chuàng)建是懶加載的形式創(chuàng)建,所以使用的時候可以這樣使用

[[NSRunLoop currentRunLoop] addTimer:(nonnull NSTimer *) forMode:(nonnull NSString *)];

如果當(dāng)前在主線程,還可以這樣使用

[[NSRunLoop mainRunLoop] addTimer:(nonnull NSTimer *) forMode:(nonnull NSString *)];

add的東西就是要添加的事件,mode是這個事件的運(yùn)行模式。

runloop的mode分兩種,一種是NSDefaultRunLoopMode,另一種是UITrackingRunLoopMode ,如果想同時兼具兩種模式NSRunLoopCommonModes

NSDefaultRunLoopMode:默認(rèn)的runloop模式,不需要觸發(fā)就執(zhí)行
UITrackingRunLoopMode:scrollview滾動的時候停止其他的模式,只運(yùn)行當(dāng)前的滾動模式,比如拖動tableview時,其他操作停止,只認(rèn)真的進(jìn)行拖動,可改善拖動時的卡頓情況
NSRunLoopCommonModes:以上兩種模式都有,也就是頁面滾動的時候該干嘛干嘛~

需要注意的是,一個runloop可以有多個模式,但是只能選擇一個模式進(jìn)行運(yùn)行,系統(tǒng)默認(rèn)的是NSDefaultRunLoopMode模式,如果進(jìn)行scrollview的滾動,系統(tǒng)自動切換到UITrackingRunLoopMode模式,停止?jié)L動后系統(tǒng)又恢復(fù)到默認(rèn)模式,進(jìn)行默認(rèn)模式的操作

后續(xù)還有runloop類的介紹,敬請期待~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容