The iOS Apprentice1-05 程序是如何运行的
2016-04-25 本文已影响0人
花开花落花满天
事件驱动
- APP由一组能够互相发送消息的组件构成,这些组件大部分由IOS提供,如button/label/viewController等。
- 组件之间通过传递消息来进行通信,比如上面的例子中,当按下button按钮后,button组件会给view controller发送消息,然后view controller又会给更多的组件发送消息。
- ios中的程序都是消息驱动的,意味着这些组件都要随时监听事件,一旦有事件发生,就要执行对应的动作。在示例APP中,button的TouchUpInside 事件,是与ViewController中的showAlert Action关联的,所以当button一旦被Touch,就会发送showAlert的消息给ViewController。ViewController执行ShowAlert,在ShowAlert中viewController会发送其他消息,如发送addAction给UIAlertController。
流程解析
消息传递图- 用户点击屏幕
- IOS的UIKit收到这个touchEvent,并将这个TouchEvent传递给UIButton。
- 当手指从屏幕离开后,touchesEnded将showAlert消息发送给ViewController。
- viewController中执行showAlert函数,这个函数是弹出警告框,需要将presentViewController这个消息发送给对应的alert 控件(这个控件是动态创建的)。
- 显示完毕后返回。
- showAlert函数返回。
- 返回,继续等待下一次event发生。