不理解Cocoa中的委托

时间:2010-05-27 21:18:09

标签: objective-c cocoa delegates

我不明白在XCode中使用委托的概念。创建新项目时,会创建应用程序委托和视图控制器,但应用程序委托的作用是什么? main.m如何知道调用委托?

2 个答案:

答案 0 :(得分:4)

main.m不会致电该代表。应用程序对象在运行时执行此操作,以便您自定义应用程序的行为,而无需子类或执行任何其他有趣的业务。代表团是Apple框架的一个相当普遍的特征;阅读他们的documentationWikipedia page on delegation可能是了解更多内容的不错选择。

答案 1 :(得分:0)

main.m是一个文件。

main.m中的main函数调用NSApplicationMain(如果您询问Cocoa Touch,则调用UIKit等效函数)。

NSApplicationMain运行共享的NSApplication对象。

NSApplication对象与其委托进行对话。*

共享NSApplication对象的委托由Cocoa程序员调用,即应用程序委托。

正如Carl Norum建议的那样,你应该阅读the section on delegates in the Cocoa Fundamentals Guide。它将更广泛地解释代表概念;应用程序委托只是一个例子。

*确切地说,这部分取决于代理何时被实例化并指定为应用程序的委托。将它放在MainMenu.nib中并将其连接到应用程序对象的delegate插座是一种方法。还有其他人,但这是最简单的。