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

事件驅(qū)動

  1. APP由一組能夠互相發(fā)送消息的組件構(gòu)成,這些組件大部分由IOS提供,如button/label/viewController等。
  2. 組件之間通過傳遞消息來進(jìn)行通信,比如上面的例子中,當(dāng)按下button按鈕后,button組件會給view controller發(fā)送消息,然后view controller又會給更多的組件發(fā)送消息。
  3. ios中的程序都是消息驅(qū)動的,意味著這些組件都要隨時監(jiān)聽事件,一旦有事件發(fā)生,就要執(zhí)行對應(yīng)的動作。在示例APP中,button的TouchUpInside 事件,是與ViewController中的showAlert Action關(guān)聯(lián)的,所以當(dāng)button一旦被Touch,就會發(fā)送showAlert的消息給ViewController。ViewController執(zhí)行ShowAlert,在ShowAlert中viewController會發(fā)送其他消息,如發(fā)送addAction給UIAlertController。

流程解析

消息傳遞圖
  1. 用戶點擊屏幕
  2. IOS的UIKit收到這個touchEvent,并將這個TouchEvent傳遞給UIButton。
  3. 當(dāng)手指從屏幕離開后,touchesEnded將showAlert消息發(fā)送給ViewController。
  4. viewController中執(zhí)行showAlert函數(shù),這個函數(shù)是彈出警告框,需要將presentViewController這個消息發(fā)送給對應(yīng)的alert 控件(這個控件是動態(tài)創(chuàng)建的)。
  5. 顯示完畢后返回。
  6. showAlert函數(shù)返回。
  7. 返回,繼續(xù)等待下一次event發(fā)生。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 圖片編輯器 1.斗圖神器 一款既有趣又好玩的app,超簡單使用,里面有現(xiàn)成的大量的gif和圖片等著你改。斗不贏圖,...
    表琴帝閱讀 638評論 0 5
  • 這些年總是有個夢,想要寫些字。大概是從幾年前喜歡看書之后的想法吧,特別羨慕那些游走旅行寫作的人。羨慕他們的才華,欽...
    夢未央閱讀 329評論 0 1
  • iOS 10 出現(xiàn)這個問題一般是由于使用了微博 微信 qq 等第三方拉起登錄或者分享的時候出現(xiàn)的 解決辦法如下在a...
    sttech閱讀 16,491評論 7 1

友情鏈接更多精彩內(nèi)容