iOS 開發(fā)-運行循環(huán)RunLoop監(jiān)聽Observer(四)

直接上代碼:一看你就懂了。

#import "ViewController.h"


@interface ViewController ()
/** 注釋 */
//@property (nonatomic, strong) pthread_t thread;
@end

@implementation ViewController

#pragma mark ----------------------
#pragma mark Events
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//    [self observer];
//    [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(task) userInfo:nil repeats:YES];
    
    [NSThread detachNewThreadSelector:@selector(task) toTarget:self withObject:nil];
}

- (IBAction)sourceBtnClick:(id)sender
{
    NSLog(@"%s",__func__);
}

#pragma mark ----------------------
#pragma mark
-(void)task
{
    NSLog(@"%s",__func__);
    
//    [NSRunLoop currentRunLoop] runUntilDate:[];
}

-(void)observer
{
    //1.創(chuàng)建監(jiān)聽者
    /*
     第一個參數(shù):怎么分配存儲空間
     第二個參數(shù):要監(jiān)聽的狀態(tài) kCFRunLoopAllActivities 所有的狀態(tài)
     第三個參數(shù):時候持續(xù)監(jiān)聽
     第四個參數(shù):優(yōu)先級 總是傳0
     第五個參數(shù):當狀態(tài)改變時候的回調(diào)
     */
    CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(CFAllocatorGetDefault(), kCFRunLoopAllActivities, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {
        
        /*
         kCFRunLoopEntry = (1UL << 0),        即將進入runloop
         kCFRunLoopBeforeTimers = (1UL << 1), 即將處理timer事件
         kCFRunLoopBeforeSources = (1UL << 2),即將處理source事件
         kCFRunLoopBeforeWaiting = (1UL << 5),即將進入睡眠
         kCFRunLoopAfterWaiting = (1UL << 6), 被喚醒
         kCFRunLoopExit = (1UL << 7),         runloop退出
         kCFRunLoopAllActivities = 0x0FFFFFFFU
         */
        switch (activity) {
            case kCFRunLoopEntry:
                NSLog(@"即將進入runloop");
                break;
            case kCFRunLoopBeforeTimers:
                NSLog(@"即將處理timer事件");
                break;
            case kCFRunLoopBeforeSources:
                NSLog(@"即將處理source事件");
                break;
            case kCFRunLoopBeforeWaiting:
                NSLog(@"即將進入睡眠");
                break;
            case kCFRunLoopAfterWaiting:
                NSLog(@"被喚醒");
                break;
            case kCFRunLoopExit:
                NSLog(@"runloop退出");
                break;
                
            default:
                break;
        }
    });
    
    /*
     第一個參數(shù):要監(jiān)聽哪個runloop
     第二個參數(shù):觀察者
     第三個參數(shù):運行模式
     */
    CFRunLoopAddObserver(CFRunLoopGetCurrent(),observer, kCFRunLoopDefaultMode);
    
    //NSDefaultRunLoopMode == kCFRunLoopDefaultMode
    //NSRunLoopCommonModes == kCFRunLoopCommonModes
}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屁使,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子妒牙,更是在濱河造成了極大的恐慌喇颁,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婉刀,死亡現(xiàn)場離奇詭異帜平,居然都是意外死亡幽告,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門裆甩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來冗锁,“玉大人,你說我怎么就攤上這事嗤栓《澈樱” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵茉帅,是天一觀的道長叨叙。 經(jīng)常有香客問我,道長堪澎,這世上最難降的妖魔是什么擂错? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮全封,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘桃犬。我一直安慰自己刹悴,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布攒暇。 她就那樣靜靜地躺著土匀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪形用。 梳的紋絲不亂的頭發(fā)上就轧,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音田度,去河邊找鬼妒御。 笑死,一個胖子當著我的面吹牛镇饺,可吹牛的內(nèi)容都是我干的乎莉。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惋啃!你這毒婦竟也來了哼鬓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤边灭,失蹤者是張志新(化名)和其女友劉穎异希,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绒瘦,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡称簿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了椭坚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片予跌。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖善茎,靈堂內(nèi)的尸體忽然破棺而出券册,到底是詐尸還是另有隱情,我是刑警寧澤垂涯,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布烁焙,位于F島的核電站,受9級特大地震影響耕赘,放射性物質(zhì)發(fā)生泄漏骄蝇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一操骡、第九天 我趴在偏房一處隱蔽的房頂上張望九火。 院中可真熱鬧,春花似錦册招、人聲如沸岔激。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽虑鼎。三九已至,卻和暖如春键痛,著一層夾襖步出監(jiān)牢的瞬間炫彩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辈挂。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像划址,于是被迫代替她去往敵國和親扔嵌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,332評論 25 707
  • 一.學(xué)生的任務(wù)就是好好上學(xué)夺颤,你為什么要打工痢缎? 這句話是我親叔教育我的時候說的。 我是從大二開始打工的世澜,其實在大學(xué)之...
    迪崽飯閱讀 1,508評論 54 35
  • iOS開發(fā)幫助文檔可以在蘋果開發(fā)者中心在線查看独旷,也可以在Xcode本地查看。 蘋果開發(fā)中心在線查看示例圖:傳送門:...
    you2can閱讀 11,669評論 1 17
  • 一寥裂、for Go 只有一種循環(huán)結(jié)構(gòu)—— for 循環(huán)嵌洼。 基本的 for 循環(huán)包含三個由分號分開的組成部分: 初始化...
    liycode閱讀 130評論 0 0
  • 《書》曰:“嗚呼麻养!明王慎德,四夷咸賓诺舔。無有遠邇鳖昌,畢獻方物,惟服食器用低飒。王乃昭德之致于異姓之邦许昨,無替厥服;分寶玉于伯...
    哲理大師閱讀 2,437評論 0 1