RunLoop,循环运行的意思,处理APP中的各种事件,让程序保持运行,这也就是我们应用能够一直保持运行的原因啦。接下来我就说一下runloop在平时的编程中应该怎么用才能提高程序的性能。
runloop的好处是,需要运行的时候运行,不需要运行的时候就处于休息状态,节省了CPU的资源,这样当然就能提高程序的性能啦~~~
runloop的使用,runloop的创建是懒加载的形式创建,所以使用的时候可以这样使用
[[NSRunLoop currentRunLoop] addTimer:(nonnull NSTimer *) forMode:(nonnull NSString *)];
如果当前在主线程,还可以这样使用
[[NSRunLoop mainRunLoop] addTimer:(nonnull NSTimer *) forMode:(nonnull NSString *)];
add的东西就是要添加的事件,mode是这个事件的运行模式。
runloop的mode分两种,一种是NSDefaultRunLoopMode,另一种是UITrackingRunLoopMode ,如果想同时兼具两种模式NSRunLoopCommonModes
NSDefaultRunLoopMode:默认的runloop模式,不需要触发就执行
UITrackingRunLoopMode:scrollview滚动的时候停止其他的模式,只运行当前的滚动模式,比如拖动tableview时,其他操作停止,只认真的进行拖动,可改善拖动时的卡顿情况
NSRunLoopCommonModes:以上两种模式都有,也就是页面滚动的时候该干嘛干嘛~
需要注意的是,一个runloop可以有多个模式,但是只能选择一个模式进行运行,系统默认的是NSDefaultRunLoopMode模式,如果进行scrollview的滚动,系统自动切换到UITrackingRunLoopMode模式,停止滚动后系统又恢复到默认模式,进行默认模式的操作
后续还有runloop类的介绍,敬请期待~