第3章 Cocoa Touch框架的运行机制与开发流程

3.1 理解UI程序运行的机制

3.1.1 程序不是顺序运行

UI程序的运行与之前学的C语言运行的机制有很大的不同,UI程序不是顺序运行的,而是绘制好界面,然后等待用户的输入(包括触摸,按下按钮,有消息推送或者来电),对输入进行响应。开发要做的事情,基本就是编写响应方法。而整个程序的框架,即Cocoa Touch已经将外围的一切都处理好。

这里有个概念叫异步执行。与之相对的是同步执行。同步执行就是一步步按部就班的执行,当前任务为未完成,则当前线程陷入阻塞状态,直到任务完成才运行下一个任务。而异步执行则灵活得多,指定一个任务运行后,不管任务有没有完成,马上就返回执行下一个任务。之前的任务完成后,框架会自动调用写好的回调函数来处理善后。

3.1.2 用户操作,硬件中断与消息处理

用户操作时,硬件会产生一个中断,此时操作系统将陷入中断处理状态,此时会调用应用程序注册好的回调响应方法来响应该中断。App通过向操作系统注册回调方法,就能轻松实现某输入事件发生后自己定义的回调方法按预期被调用。整个 UI 程序开发,就是在这样一种机制下编写事件响应方法而已,也就是所谓的消息处理。