iOSJG专题JC专题

iOS RunLoop

2015-11-12  本文已影响2874人  iOS_成才录

一、简介

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    }
}

二、RunLoop与线程

获得RunLoop对象

[NSRunLoop currentRunLoop];// 获得当前线程的RunLoop对象
[NSRunLoop mainRunLoop];// 获得主线程的RunLoop对象
CFRunLoopGetCurrent();// 获得当前线程的RunLoop对象
CFRunLoopGetMain();// 获得主线程的RunLoop对象

三、RunLoop相关资料

四、RunLoop相关类

runLoop相关类.png

CFRunLoopModeRef

CFRunLoopSourceRef

CFRunLoopSourceRef

CFRunLoopObserverRef

监听时间点.png
//创建observer
CFRunLoopObserverRefobserver = CFRunLoopObserverCreateWithHandler(CFAllocatorGetDefault(),kCFRunLoopAllActivities,YES,0,^(CFRunLoopObserverRefobserver, CFRunLoopActivityactivity) {
    NSLog(@"----监听到RunLoop状态发生改变---%zd",activity);
});

//添加观察者:监听RunLoop的状态
CFRunLoopAddObserver(CFRunLoopGetCurrent(),observer, kCFRunLoopDefaultMode);

//释放Observer
CFRelease(observer);
上一篇下一篇

猜你喜欢

热点阅读