《iOS开发笔记—运行循环RunLoop》

来源:互联网 发布:游戏引擎是什么 知乎 编辑:程序博客网 时间:2024/04/29 09:32

一、RunLoop

RunLoop:运行循环。主要作用:(1)保持程序的持续运行;(2)处理App中的各种事件(比如触摸事件、定时器事件、Selector事件);

在UIApplicationMain函数内部就启动了一个RunLoop,所以UIApplicationMain函数一直没有返回,保持了程序的持续运行,这个默认启动的RunLoop是跟主线程相关联。

1、RunLoop与线程

(1)每条线程都有唯一的一个与之对应的RunLoop对象

(2)主线程的RunLoop已经自动创建好了,子线程的RunLoop需要主动创建
(3)RunLoop在第一次获取时创建,在线程结束时销毁

2、获得RunLoop对象的方式

iOS中有2套API来访问和使用RunLoop

1.Foundation : NSRunLoop
2.CoreFoundation : CFRunLoopRef
NSRunLoop和CFRunLoopRef都代表着RunLoop对象

Foundation
[NSRunLoop currentRunLoop];// 获得当前线程的RunLoop对象[NSRunLoop mainRunLoop];// 获得主线程的RunLoop对象
CoreFoundation
CFRunLoopGetCurrent();// 获得当前线程的RunLoop对象
CFRunLoopGetMain();// 获得主线程的RunLoop对象

原创粉丝点击