将大多数逻辑和模型放在appDelegate中是否可以?

对于我的大多数应用程序,我已将所有逻辑放在类中,每个ViewController也会获得类的引用,或者创建/释放对象本身。

我刚刚开始阅读一本关于IOS的书,作者似乎想将app逻辑放在appDelegate中,而viewcontrollers只是将动作转发给执行实际工作的appDelegate方法。

作者是这样做的,因为它们是简单的例子,或者这是我应该学习的东西,并开始在我的应用程序中做什么?

首先,请参阅最佳描述应用程序代理的内容? 它如何融入整个概念?

应用程序委托是应用程序的委托。 它不是容纳你不知道的地方的地方。 它不是全局变量的存储位置。 它是UIApplication对象的委托。 因此,将代码放在与启动应用程序,终止,切换到后台等相关的代码是正确的地方。等与应用程序如何适应操作系统有关的事情。

应用程序委托是一个控制器,因此它不应该保存数据。 数据在模型中。 应用程序委托可以在启动时创建模型并将其交给其他控制器,但它不是模型的API。 通常,模型是单例,而不是由应用程序委托创建。 两种方法都有优势。

大多数示例代码将模型代码放在app委托中,因为对于简单的示例,它需要的代码少一些。 但在实际程序中,它使应用程序委托过于复杂,并且显着损害了代码重用。 您的应用程序委托通常应该非常小,并且其中的大多数方法应该是一部分。

我会说这是因为这些例子可能很简单。 对于任何相当复杂的现实应用程序,appdelegate类很快就会变得笨拙。

从技术上讲,你可以做到。 在编程实践方面,不要。 一旦你在appDelegate中放了很多东西,它就会变得非常混乱。 我的建议是不管它。

除了全局变量之外,您不需要在appDelegate中放置任何内容。 如果你有时需要它,我的建议是使用像singleton模式这样的东西。 一般来说,全局变量并不是一种好的做法。

希望这可以帮助。