ios高級開發----RunLoop

runloop從字面意思來看是運行循環的意思。

一、RunLoop的基本作用:1.保持程序持續運行

                                             2.處理App的各種事件(比如觸摸事件、定時器事件、selector事件)​                                

                                             3.節省CPU資源,提高程序性能​

RunLoop與線程的關係:1每一個線程都有唯一的與之對應RunLoop對象

                                         2.主線程的RunLoop已經自動創建好,子線程的RunLoop需要自己手動創建​

                                        3.RunLoop在第一次獲取時創建,在線程結束 時銷燬​

三、獲取RunLoop對象:​

                     1.獲取當前的RunLoop:

//1.獲取當前線程對應的RunLoop
    NSRunLoop * currentLoop =  [NSRunLoop currentRunLoop];
    NSLog(@"當前線程對應的RunLoop:%@",currentLoop);

                     2.獲取主線程的RunLoop:[NSRunLoop mainRunLoop];​

四、RunLoop相關的類:Core Foundation 中關於RunLoop有5個相關的類

     CFRunLoopRef 

     CFRunLoopModeRef :RunLoop的運行模式,一個RunLoop包含若干個Mode,每個Mode又包含若干個Source/Timer/Observer

                                         每次RunLoop啓動時,只能指定其中一個Mode,這個Mode被稱作爲CurrentMode

                                         如果需要切換Mode,只能退出Loop,再重新指定一個Mode進入

                                         系統默認註冊了5個Mode:  kCFRunLoopDefaultMode(App的默認Mode,通常主線程是在這個Mode下運行)、UITrackingRunLoopMode(界面追蹤的Mode,用於UIScrollView追蹤觸摸滑動,保證界面滑動時不受其他Mode的影響)、UIInitializationRunLoopMode(在App剛啓動時進入的第一個Mode,啓動完成後就不再使用)、GSEventReceiveRunLoopMode(接受系統事件的內部Mode,通常不用)、kCFRunLoopCommonMode(是一個佔位用的Mode,不是一種真正的Mode)

   CFRunLoopSourceRef  CFRunLoopTimerRef   CFRunLoopObserverRef

發佈了29 篇原創文章 · 獲贊 2 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章