运行循环
2016-01-12 本文已影响54人
gpr
1. 在应用程序启动的时候,系统首先会启动一个主运行循环来给应用程序与用户交互,在这个过程中系统不断重复这个运行循环来跟用户交互,当用户的与手机产生交互到手机作出相应地反应为一次运行循环
1.1 运行循环的作用 :
(1) 保证程序不退出
(2) 监听所有事件,例如:手势触摸,时钟触发,网络加载数据完成等
2. 一个完整的运行循环如下 :
(1) 当用户触摸屏幕时候,CocoaTouch会产生一个触摸事件对象
(2) 接着CocoaTouch会产生一个自动释放池,然后会把此触摸事件对象发送给应用来处理这个事件,通常我们要在这个环节来处理我们的事件
(3) 当我们处理完事件之后,给用户做出了反应,那么此自动释放池就会被销毁,销毁前它会遍历此释放池中的所有对象给他们各发送一条release消息
(4) 注意如果在子线程中需要用到autorelease的对象,需要我们自己创建自动释放池
注意
在 `子线程`中不会帮我们自动创建自动释放池,特别在自定义 NSOperation 的 main 方法中,如果我们不自己添加 @autoreleasepool 的话,很容易会发生内存泄露