【问题标题】:Should I be writing the majority of my code in a controller or the delegate?我应该在控制器还是委托中编写大部分代码?
【发布时间】:2011-11-03 02:01:17
【问题描述】:

我使用的是 Xcode 4.1,升级到 4.2 后,事情开始变得过时。我使用了来自不同书籍的许多示例,例如 Big Nerd Ranch Guides,它们不使用情节提要,并且基于 Windows 的应用程序已更改为“空”应用程序。

有了这些新的变化,我觉得我开始使用的书籍和教程已经过时了。在许多这些示例中,他们说要在 4.1 的委托头文件中编写方法和变量。在新的 4.2 Xcode 中,有一个 AppDelegate 和 ViewController。我应该仍然在 AppDelegate 中编写方法和类成员,还是现在应该在 Controller 文件中编写它们?

我很困惑。 Apple 现在是否希望我们创建控制器并通过委托引用它?

【问题讨论】:

    标签: iphone xcode delegates controller ios5


    【解决方案1】:

    当您的应用程序运行时,它会创建一个UIApplication 的实例。您想知道只有 UIApplication 对象知道的事情(我们刚刚切换到后台吗?我们刚刚打开了吗?)所以您使用委托模式来获取它。当你开始一个新项目时,Apple 会从一个已经分配的 App Delegate 开始。您可以打开 MainWindow.nib 并检查您的 App Delegate 以查看它如何连接到您的 UIApplication 实例(在本例中为文件所有者)。

    一般来说,您只想在其中放置与应用的基本功能有关的代码。启动、退出、进入后台和进入前台是您在 App Delegate 中执行操作的时间。

    大多数其他东西都应该放在您的视图控制器或模型对象中。由于“委托”只是一种设计模式,因此您的视图控制器可以是其他对象的委托。例如,如果您提供UITableView,您将分配一个视图控制器作为它的委托,以响应选择和滚动等事件。您的应用有许多委托,但它只有一个 App Delegate。

    【讨论】:

      【解决方案2】:

      AppDelegate 实际上只是您应用的“启动器”。即:您根本不应该在其中编写太多代码。

      如果您关心“设置”代码,请在视图控制器中的 viewDidLoad 下进行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-19
        • 2012-02-03
        • 2012-05-29
        • 2011-04-01
        • 1970-01-01
        相关资源
        最近更新 更多