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();