Observer
/*
参数 1:分配该 observer 对象的内存空间
参数 2:设置该 observer 监听什么状态
参数 3:是否每次需要监听
参数 4:用于设置该 observer 的优先级,一般是0
参数 5:用于设置该 observer 的回调函数
参数 6:observer 的运行状态
*/
CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(CFAllocatorGetDefault(),
kCFRunLoopAllActivities,
YES,
0,
^(CFRunLoopObserverRef observer,
CFRunLoopActivity activity) {
});
CFRunLoopObserverContext context = {
0,
(__bridge void *)self,
&CFRetain,
&CFRelease,
NULL
};
CFRunLoopObserverRef observer = CFRunLoopObserverCreate(kCFAllocatorDefault,
kCFRunLoopBeforeWaiting,
YES,
0,
&callback,
&context);
void callback(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *info)
{
}
Source
CFRunLoopSourceContext context = {0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
CFRunLoopSourceRef source = CFRunLoopSourceCreate(kCFAllocatorDefault, 0, &context);
Timer
CFRunLoopTimerRef timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault,
CFAbsoluteTimeGetCurrent(),
0.5f,
0,
0,
^(CFRunLoopTimerRef timer) {
});