关于Runloop

2017-10-01  本文已影响3人  攻克乃还_

一、基本

二、Runloop内部

三、执行任务完毕后线程被销毁,如何开启常驻线程?为什么要开启?

NSRunLoop *runloop = [NSRunLoop currentRunLoop];
NSTimer *timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(run) userInfo:nil repeats:YES];
[runloop addTimer:timer forMode:NSDefaultRunLoopMode];
[runloop addPort:[NSPort port] forMode:NSDefaultRunLoopMode];
[runloop run];

四、Runloop运行逻辑:

1.通知观察者即将进入runloop

2.通知观察者要处理定时器和源事件
3.处理定时器和源事件

4.通知观察者即将进入休眠
5.已经进入休眠
6.通知观察者runloop被唤醒

7.通知观察者即将推出runloop

五、Runloop中自动释放池的创建和释放

runloop的不同模式

 1.UIInitializationRunLoopMode:启动时
 2.UITrackingRunLoopMode:ScrollView滑动时 
 3.NSDefaultRunLoopMode:默认/空闲状态
 4.NSRunLoopCommonModes:2,3 Mode
 苹果公开的 Mode :3,4
上一篇下一篇

猜你喜欢

热点阅读