我应该在控制器或代理中编写我的大部分代码吗?

时间:2011-11-03 02:01:17

标签: iphone xcode delegates controller ios5

我正在使用Xcode 4.1,升级到4.2后,事情开始变得过时。我正在使用不同书籍中的许多示例,例如Big Nerd Ranch Guides,它们不使用Storyboard,而基于Windows的应用程序已更改为“空”应用程序。

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

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

2 个答案:

答案 0 :(得分:1)

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

通常,您只想在其中放置与应用程序的基本功能有关的代码。启动,退出,转到后台并进入前台,您将在App Delegate中执行操作。

大多数其他内容都应该放在视图控制器或模型对象中。由于'delegate'只是一种设计模式,因此您的视图控制器可以是其他对象的委托。例如,如果您提供UITableView,则会将视图控制器指定为其委托,以响应选择和滚动等事件。您的应用有很多代表,但它只有一个App Delegate。

答案 1 :(得分:0)

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

如果您关注“设置”代码,请在viewDidLoad下的视图控制器中执行此操作。