-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
CFRunLoopObserverRef observerRef = CFRunLoopObserverCreateWithHandler(CFAllocatorGetDefault(), kCFRunLoopAllActivities, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {
switch (activity) {
case kCFRunLoopEntry:
NSLog(@"runloop启动");
break;
case kCFRunLoopBeforeTimers:
NSLog(@"runloop即将处理timer事件");
break;
case kCFRunLoopBeforeSources:
NSLog(@"runloop即将处理sources事件");
break;
case kCFRunLoopBeforeWaiting:
NSLog(@"runloop即将进入休眠");
break;
case kCFRunLoopAfterWaiting:
NSLog(@"runloop被唤醒");
break;
case kCFRunLoopExit:
NSLog(@"runloop退出");
break;
default:
break;
}
});
CFRunLoopAddObserver(CFRunLoopGetCurrent(), observerRef, kCFRunLoopDefaultMode);
}
本文介绍了一个在iOS开发中使用RunLoop观察者的方法,通过在touchesBegan方法中创建并添加观察者,可以监听RunLoop的各种状态变化,如启动、处理timer事件、处理sources事件、进入休眠、被唤醒及退出等。
3636

被折叠的 条评论
为什么被折叠?



