亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于swift中AppDelegage.swift文件的疑問

關于swift中AppDelegage.swift文件的疑問

一只甜甜圈 2018-08-14 15:10:36
c語言中,程序是從main函數開始執行的,swift中并沒有找到類似的main函數一樣的東西,程序好像是從AppDelegate.swift中開始的,但是不明白是怎么運行的,希望小伙伴們能指點一二(ps:沒學過oc,希望不要從oc的角度解釋=。=)還有,委托模式又是個什么東西-。-
查看完整描述

2 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

  1. 控制反轉(IoC): 不是你從main()開始寫代碼然后調用lib, 而是framework調用你寫的代碼. 作為進程入口的main()仍然存在, 但是是在框架里定義的, 不用你來寫.

  2. 委托, 就是"把任務轉交給別的class, 由別的class承擔". 一個framework不能把所有行為寫死, 總有些行為要由app開發者來定義. 你定義一個實現了特定protocol的class然后傳進去, framework就會在需要的時候("app啟動了" "收到Notification了")調用你的AppDelegate來處理.


查看完整回答
反對 回復 2018-08-19
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

說起來有點長。
先說Delegate,這是一個OO中的概念,調用一個對象的成員函數在OO中的術語是給這個對象發送消息,對象接收到一個消息時可以選擇自己處理掉,或者將這個消息轉發給另外一個對象,轉發到的那個對象就被稱之為delegate。
Cocoa程序在啟動的時候,runtime會給每個app創建一個NSApplication對象實例,NSApplication對象會接收到Cocoa框架發送來的一些消息,比如告訴它程序已經啟動或者用戶想要退出等,但NSApplication對象并不親自處理這個消息,因為每個程序擁有的NSApplication對象都是一樣的,但每個程序對于這些消息的處理方式卻不一樣,所以NSApplication對象讓你指定一個Delegate對象來處理這些消息,以得到你想要的結果。
AppDelegate.swift中定義了一個class,這個class的實例對象就是這個程序中NSApplication的delegate。這個實例對象的創建是由Cocoa框架做的。
當然你可以在一個程序里建立不止一個NSApplicationDelegate的子類,也可以創建不止一個NSApplicationDelegate對象,但你的App里定義了一個xib文件,這個xib文件中指定了Cocoa到底應該創建哪個類的實例作為全局NSApplication對象的delegate。

查看完整回答
反對 回復 2018-08-19
  • 2 回答
  • 0 關注
  • 1274 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號