Runloop運行循環的作用是什麼?
Runloop運行循環在現在實際開發中,幾乎用不到!但是概念非常重要,需要理解!
作用:
1. 保證程序不退出!在實際開發中,程序員不需要考慮運行循環!
2. 監聽輸入事件:觸摸事件,時鐘事件,網絡事件完成等等都是由運行循環來負責監聽的!
那下面拿按鈕的點擊實際舉例:
[btn addTarget:self action:@selector(btnClick)forControlEvents:UIControlEventTouchUpInside]
監聽按鈕點擊一般會使用上面的方法,那系統是如何知道,點擊了某個按鈕呢?請看下圖(涉及到了響應者鏈條和Runloop監聽和註冊)
3. 時鐘:
NSTimer *timer = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(fire) userInfo:nil repeats:YES];
//NSRunLoopCommonModes 需要和用戶交互的時,同時被觸發,可以選擇 NSRunLoopCommonModes
//NSDefaultRunLoopMode 系統默認的
[[NSRunLoop mainRunLoop]addTimer:timer forMode:NSDefaultRunLoopMode];
注意:時鐘執行的方法 ,不能太耗時,如果耗時嚴重,會影響用戶交互!