Runloop

158 阅读1分钟

Runloop

什么是runloop?

  • 定时器(Timer)、PerformSelector
  • GCD Async Main Queue
  • 事件响应、手势识别、界面刷新
  • 网络请求
  • AutoreleasePool

RunLoop的基本作用

  • 保持程序的持续运行
  • 处理App中的各种事件(比如触摸事件、定时器事件等)
  • 节省CPU资源,提高程序性能:该做事时做事,该休息时休息
  • 程序不会立马退出,处理APP里事件,节省cpu资源

RunLoop对象

iOS中有2套API来访问和使用,分别是Foundation 和 Core Foundation。CFRunLoopRef是开源的,NSRunLoop是基于CFRunLoopRef的一层OC包装,NSRunLoop和CFRunLoopRef都代表着RunLoop对象

//Foundation 获取RunLoop对象
NSRunLoop *runloop = [NSRunLoop currentRunLoop];
//Core Foundation 获取 RunLoop对象
CFRunLoopRef runloop = CFRunLoopGetCurrent();