runloop 监听( CFRunLoopAddObserver)

 CFRunLoopObserverRef runloop =  CFRunLoopObserverCreateWithHandler(CFAllocatorGetDefault(), kCFRunLoopBeforeSources, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {
        NSLog(@"%lu", activity);
    });
    CFRunLoopAddObserver(CFRunLoopGetCurrent(), runloop, kCFRunLoopDefaultMode);
    
    
//    CFRunLoopObserverRef runloopRef = CFRunLoopObserverCreateWithHandler(<#CFAllocatorRef allocator#>, <#CFOptionFlags activities#>, <#Boolean repeats#>, <#CFIndex order#>, <#^(CFRunLoopObserverRef observer, CFRunLoopActivity activity)block#>)

//


typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) {
    kCFRunLoopEntry = (1UL << 0),                                               //  : 即将到 runloop
    kCFRunLoopBeforeTimers = (1UL << 1),                                 //   : 即将处理 timer 之前
    kCFRunLoopBeforeSources = (1UL << 2),                              //    : 即将处理 source 之前
    kCFRunLoopBeforeWaiting = (1UL << 5),                              //     : 即将休眠
    kCFRunLoopAfterWaiting = (1UL << 6),                               //       : 休眠之后
    kCFRunLoopExit = (1UL << 7),                                           //        : 退出
    kCFRunLoopAllActivities = 0x0FFFFFFFU                        //         : 所有的活动
};


//    <#CFStringRef mode#>  表示在润loop 的什么状态下监听
//    kCFRunLoopDefaultMode :  默认的模式
//    kCFRunLoopCommonModes :  标记为 NSRunLoopCommonModes 的模式 UITrackingRunLoopMode 和 NSDefaultRunLoopMode 都是标记为 NSRunLoopCommonModes的
    
//    CFRunLoopAddObserver(<#CFRunLoopRef rl#>, <#CFRunLoopObserverRef observer#>, <#CFStringRef mode#>)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值