前言
最近小编在阅读代码时发现开发同学在开发过程中使用到了一些runLoop,由于自身的好奇心作祟,于是就私下去了解了相关介绍,突然发现runLoop的作用远不止我最早之前理解的循环调用。接下来,小编就为大家简单介绍一下runLoop
RunLoop简介
RunLoop 实际上就是一种循环,在 “接收消息->等待->处理” 这样的循环中,去管理事件或者消息,例如触摸事件、UI刷新事件、定时器事件等。在消息来到时立刻被唤醒处理事件,在没有处理事件时休眠,避免资源占用。
iOS 系统中,提供了两个这样的对象:NSRunLoop 和 CFRunLoopRef。
CFRunLoopRef是在CoreFoundation 框架内的。 NSRunLoop是基于 CFRunLoopRef的封装,提供了面向对象的 API。获得RunLoop对象方法
[NSRunLoop currentRunLoop]; // 获得当前线程的RunLoop对象[NSRunLoop mainRunLoop]; // 获得主线程的RunLoop对象