RunLoop,这个东西被大牛的都说烂了(很透彻了),但是为了向大牛迈进的我(吊丝),也忍不住要说一说。
概念:看字面意思就知道是 运行循环
作用:RunLoop的作用是保证线程不退出,有任务执行任务,没任务就睡觉(休眠状态),但是对于小猿来说就是装逼用的(用的很少,基本不用)。
注意:RunLoop有五种模式:
NSDefaultRunLoopMode - 默认模式;
UITrackingRunLoopMode-UI模式;
NSRunLoopCommonModes - 占位模式;
内核事件模式:系统内核事件处理;
初始化模式;程序启动的那一刻才有。之后就没有了 //后两种是用不到的
在使用的时间一定要注意,当我们想装逼一把而用NSRunLoopCommonModes模式时候,最好加载的事件不要太复杂,一定要“轻”,不然会有卡顿的现在或其它现象。比如:
NSTimer * time = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];
//加入运行循环
[[NSRunLoop currentRunLoop] addTimer:time forMode:NSRunLoopCommonModes];
此时方法 updateTimer 处理的东西不要太耗时(太多太重太复杂),否则,你可以试试。
其次,注意一点是:RunLoop只可以去获取,没办法去创建。
一大早睡不着了,起来写个RunLoop!!!!! 欢迎大家吐槽更正。
网友评论