曙海教學(xué)優(yōu)勢
本課程,秉承二十一年積累的教學(xué)品質(zhì),以項目實現(xiàn)為導(dǎo)向,面向企事業(yè)項目實際需要,老師將會與您分享設(shè)計的全流程以及工具的綜合使用經(jīng)驗、技巧。課程可定制,線上/線下/上門皆可,熱線:4008699035。
曙海培訓(xùn)的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。大批企業(yè)和曙海
建立了良好的合作關(guān)系,合作企業(yè)30萬+。曙海培訓(xùn)的課程在業(yè)內(nèi)有著響亮的知名度。
一:什么是RunLoop
?? (1)從字面意思看,運行循環(huán)、跑圈。
?? (2)保持程序持續(xù)運行,處理App中的各類事件包括觸摸事件、定時器事件、Selector事件。
?? (3)節(jié)省CPU資源,提高程序的性能,該做事的時候做事,該休息的時候休息。
? ?
二:RunLoop與線程
?? ?
?? (1)每條線程都有唯一的一個與之對應(yīng)的RunLoop對象。
?? (2)主線程的RunLoop已經(jīng)自動創(chuàng)建好了,子線程的RunLoop需要主動創(chuàng)建。
?? (3)RunLoop在第一次獲取時創(chuàng)建,在線程結(jié)束時候銷毀。
三:RunLoop相關(guān)類
?? Core Foundation中關(guān)于RunLoop的5個類
?? 1:CFRunLoopRef
?? 2:CFRunLoopModeRef? ,CFRunLoopModeRef代表RunLoop的運行模式,一個RunLoop包含若干個運行模式,即一個RunLoop包含若干個Mode,每個Mode又包含若干個Source/Timer/Observer,每次RunLoop啟動時,只能指定其中一個Mode,這個Mode被稱作CurrentMode,如果需要切換Mode,只能退出Loop,再重新指定一個Mode進入。系統(tǒng)默認(rèn)注冊了5個Mode:
?? (1)kCFRunLoopDefaultMode:App的默認(rèn)的Mode,通常線程是在這個Mode下運行
?? (2)UITrackingRunLoopMode:界面跟蹤Mode,用于ScrollView追蹤觸摸滑動,保證界面滑動時不受其它Mode影響
?? (3)UIInitializationRunLoopMode:在剛啟動App時進入的第一個Mode,啟動完成后就不再使用
?? (4)GSEventReceiveRunLoopMode:接收系統(tǒng)事件的內(nèi)部Mode,通常用不到。
?? (5)kCFRunLoopCommonMode:這是一種占位用的Mode,不是一種真正的Mode。
?? 3:CFRunLoopTimerRef
?? (1)CFRunLoopTimerRef是基于時間的觸發(fā)器。
?? (2)基本上說的就是NSTimer,它會受到runloop的Mode的影響。
?? (3)GCD的定時器不受RunLoop的mode的影響。