2010-05-27 54 views
1

我不明白代碼的概念是用在XCode中的。當一個新項目被創建時,一個應用程序委託和一個視圖控制器被創建,但是這個應用程序委託是做什麼的? main.m如何知道如何調用委託?不瞭解Cocoa的代理團隊

+0

Xcode是一個IDE。委託在Xcode中的使用方式與在任何其他文本編輯器或任何其他編譯器中使用的方式相同。你的意思是詢問* Cocoa *的代表團。 – 2010-05-28 10:32:04

+0

在那裏,我改變了它。 – 2010-05-30 21:21:15

回答

4

main.m不會調用委託。應用程序對象在運行時會這樣做,使您可以自定義應用程序的行爲,而無需子類或做任何其他有趣的業務。授權Apple框架的一個相當常見的功能;閱讀他們的documentationWikipedia page on delegation可能是瞭解更多信息的好選擇。

+0

具體來說,它會查看Info.plist文件以確定在啓動時要加載哪個NIB文件,從中創建您的應用程序委託 – 2010-05-27 22:28:46

0

main.m是一個文件。

main.m中的main函數調用NSApplicationMain(或者如果您要問關於Cocoa Touch的問題,可以使用UIKit等效函數)。

NSApplicationMain運行共享的NSApplication對象。

的對象的NSApplication會談其委託。*

共享的NSApplication對象的委託被調用時,由可可程序員,應用程序委託。

正如Carl Norum建議,您應該閱讀the section on delegates in the Cocoa Fundamentals Guide。它將更廣泛地解釋代表概念;應用程序委託僅僅是一個例子。

*何時完全取決於何時該委託被實例化並指定爲應用程序的委託。將它放在MainMenu.nib中,並將它連接到應用程序對象的delegate插座是一種方法。還有其他的,但這是最簡單的。