iOS面试 -- RunLoop

RunLoop概念

RunLoop是通过内部维护事件循环来对事件/消息进行管理的对象

  1. 当没有消息处理时,休眠避免资源被占用,此时由用户态切换到内核态
  2. 当有消息需要处理时,立即被唤醒,此时由内核态切换到用户态

为什么Main函数不会退出?

UIApplicationMain内部默认开启了主线程的RunLoop,并执行了一段while循环代码

RunLoop数据结构