The iOS Apprentice1-05 程序是如何运行的

事件驱动

  1. APP由一组能够互相发送消息的组件构成,这些组件大部分由IOS提供,如button/label/viewController等。
  2. 组件之间通过传递消息来进行通信,比如上面的例子中,当按下button按钮后,button组件会给view controller发送消息,然后view controller又会给更多的组件发送消息。
  3. ios中的程序都是消息驱动的,意味着这些组件都要随时监听事件,一旦有事件发生,就要执行对应的动作。在示例APP中,button的TouchUpInside 事件,是与ViewController中的showAlert Action关联的,所以当button一旦被Touch,就会发送showAlert的消息给ViewController。ViewController执行ShowAlert,在ShowAlert中viewController会发送其他消息,如发送addAction给UIAlertController。

流程解析

消息传递图
  1. 用户点击屏幕
  2. IOS的UIKit收到这个touchEvent,并将这个TouchEvent传递给UIButton。
  3. 当手指从屏幕离开后,touchesEnded将showAlert消息发送给ViewController。
  4. viewController中执行showAlert函数,这个函数是弹出警告框,需要将presentViewController这个消息发送给对应的alert 控件(这个控件是动态创建的)。
  5. 显示完毕后返回。
  6. showAlert函数返回。
  7. 返回,继续等待下一次event发生。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 图片编辑器 1.斗图神器 一款既有趣又好玩的app,超简单使用,里面有现成的大量的gif和图片等着你改。斗不赢图,...
    表琴帝阅读 593评论 0 5
  • 这些年总是有个梦,想要写些字。大概是从几年前喜欢看书之后的想法吧,特别羡慕那些游走旅行写作的人。羡慕他们的才华,钦...
    梦未央阅读 312评论 0 1
  • iOS 10 出现这个问题一般是由于使用了微博 微信 qq 等第三方拉起登录或者分享的时候出现的 解决办法如下在a...
    sttech阅读 16,443评论 7 1