RunLoop应用场景

屏幕快照 2016-12-29 上午7.13.10.png

场景一:NSTimer

RunLoop有多种model,每种model下面有多个source,RunLoop的运行是在不同model中切换的,所以如果把一个NSTimer添加到kCFRunLoopDefaultMode中的时候,如果滑动表视图,NSRunLoop会切换到UITrackingRunLoopMode模式下,导致NSTimer无法运行。

解决方法:将NSTimer添加到NSRunLoopCommonModes模式下,添加到NSRunLoopCommonModes模式下的source,RunLoop会检测里面的source有没有被执行,如果没有被执行,RunLoop就会把这个source添加到当前的Model中去,保证了NSTimer的运行。

场景二:线程保活

如果开辟了一个子线程,子线程中的任务执行完毕就会退出,销毁,如果想长时间的让子线程执行代码,那么把子线程添加到RunLoop中去。

场景三:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容