应用程序代表用法

时间:2012-03-29 21:37:23

标签: objective-c cocoa delegates

我对Objective-C和cocoa编程很新,所以我不太了解App Delegates的概念。

当我们创建一个cocoa应用程序时,我们是否将代码(方法,操作,出口)存储在App Delegate文件中,或者我们是否创建了一个新文件,它将从那里充当控制器和代码。现在,我将所有代码都放在这两个文件中,但从我读到的内容来看,你的目标是尽量使你的App Delegate文件尽可能地模糊。

我的问题是:应用委托文件的用途是什么?

2 个答案:

答案 0 :(得分:2)

谈论applicationDidFinishLaunching:: 这只是您的应用程序入口点。通常,您只需在此处创建窗口和第一个ViewController,或Tabbar - 您的主要起始接口类。

NSApplicationDelegate的所有其他委托方法当然都有其他功能。其中大部分都是重点,您可以对应用程序的状态做出反应。打开/关闭/背景/重新打开等

但你应该看一下iPhone文档中的编程教程。关于如何构建objc项目有很多信息。例如。看这里:Start Developing iOS Apps Today

或者,如果您正在寻找OSX应用程序,请查看此处:

1)Your First Mac App
2)Mac App Programming Guide

还有一堆Sample code

答案 1 :(得分:1)

App Delegate是处理应用程序上发生的事件的处理程序位置。像打开和关闭的东西。它也会在应用程序执行的整个过程中挂起,您可以通过[[NSApplication sharedApplication] delegate]随时获取单例实例。

这对于在控制器之间处理对象以及充当事件的路由器非常有用。如果您需要在代码的不同部分修改/访问它,您还可以在委托上存储一些数据。

这一切都适用于简单的应用程序,但随着事情变得更加复杂,您需要分工。 AppDelegate实际上应该只对应用程序本身发生的操作负责,而不是对另一个视图或控制器上的操作负责。将所有/大部分代码放在AppDeligate中肯定是不好的做法,并且会因为事情变得更加复杂而需要维护而导致可怕的代码。