没有应用程序委托可以工作吗?

问题描述:

我的问题是基于这样一个事实,即可能有多个小型项目,然后想要将它们集成到一个更大的项目中,以提高编码效率。没有应用程序委托可以工作吗?

我看到了多个项目,根本没有使用App Delegate,我认为Adium项目就是其中之一。过去我也有几次能够重新创建它,现在我不记得如何。

我想一个基本的NSObject继承类将适合,加上它的实例化和连接。

问题是,是否可以在没有App Delegate的情况下工作(或者有解决方法)?

+0

你的意思是根本没有AppDelegate或只是不向AppDelegate添加额外的代码? – Fogmeister

+0

我的意思是在AppDelegate中没有额外的代码 –

如果您想实施NSApplicationDelegate协议中声明的某些方法来响应某些应用程序生命周期事件,则需要应用程序委托。如果您不需要实现其中的任何一种,则不需要应用程序委托。一些委托方法也有通知选择。

+0

什么属于应用程序生命周期事件?显示一个窗口并使元素相互影响? –

+0

查看我链接的文档。该协议中的所有内容都必须在应用程序委托中实现。请注意,这个对象可以是任何东西。它只是一个协议(也就是其他语言的接口)。 – DrummerB

+0

我试了一下,得到了一个基本的设置,我没有使用应用程序委托,但在对象中实例化类作为'准委托',但类的代码不能运行(断点检查)...什么可能我现在做的? –

OK,从您的评论...

I mean having no additional code in AppDelegate 

然后是。

这不仅是可能的,它是建议。正是因为你说过的原因。

应用程序代表作为应用程序和操作系统之间的通信层。即“应用程序已经启动”,“应用程序即将关闭”,“应用程序刚刚收到通知”等等。

所有这些都是应用程序委托的目的。

你的应用程序的逻辑不应该去你的应用程序代表附近的任何地方。就像您所说的,您的应用中可能会有不同的应用或不同的目标,它们使用不同的应用代理。

如果您有代码,那么您将不得不将其复制到每个副本。

也有很多其他的原因。

这里是一个快速链接... http://www.hollance.com/2012/02/dont-abuse-the-app-delegate/

有关于不使用的应用程序委托其他许多人。

+0

我同意,由于很多原因,它是非常重要和重要的,我也阅读了该资源。现在我需要弄清楚的是如何使任何代码可执行,因为我尝试了没有AppDelegate设置和通过断点,我发现我的代码没有运行。 –

+0

请注意,一个非常非常基本的设置就足以说明它是如何工作的。接受你的答案,我们正在接近这里的解决方案!谢谢@Fogmeister。 –