[問題] iPhone程式的進入點

看板MacDev作者 (阿儒)時間16年前 (2009/07/01 16:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
研究了一陣子的iPhone開發,也寫過一些小小的程式。 自以為已經對Mac. iPhone程式開發有一定的程度。 這陣子比較有空,仔細將iPhone程式流程想一想 才驚覺我對iPhone的流程不甚了解。 一開始的進入點就卡關了.... 在一般的C++程式,進入點就是main() 然後一行一行的執行,沒什麼大問題。 我選擇了最簡單(應該是吧?)的template --- iPhone - Window-Based 來研究整個運作流程。 檔案內含有三個程式碼檔案 --- AppDelegate.h .m 和 main.m AppDelegate是NSObject的subclass,UIApplicationDelegate的delegate。 只含有一個UIWindow的ivar 並implement兩個函式 --- applicationDidFinishLaunching: . dealloc: 以下是main.m的內容: int main(int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; } 我想流程是 程式執行先進入main,建路autorelease pool 接著進入UIApplicationMain進行初始化,裡面會呼叫他的delegate --- AppDelegate 中的applicationDidFinishLaunching method 將AppDelegate中的window顯示出來,並將控制權交給AppDelegate。 結束流程。 如果是這樣的話,為什麼沒有看到類似xxxxx.delegate = self; 的命令句? UIApplicationMain怎麼會知道要將工作交給AppDelegate執行呢? 還是說UIApplicationMain是在Build時才生成,會將AppDelegate這個物件包進程式碼中? 不好意思,講的很亂。 謝謝! -- ▂▃▄▃▂ ◢ ˙ ˙ ▉▃ /喵喵~~~~ ◣╲ˍ ╱▎ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.85.94
文章代碼(AID): #1AIo66HY (MacDev)
文章代碼(AID): #1AIo66HY (MacDev)