目标C:何时使用App Delegate中的方法以及何时在View Controller中使用方法

时间:2011-04-07 04:33:42

标签: iphone objective-c delegates uiviewcontroller uiapplicationdelegate

我对View Controller和App委托类中的以下方法感到有点困惑

App委托中的方法:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

ViewController中的方法:

- (void)viewDidLoad 

在什么情况下我需要在app delegate或ViewController方法中添加代码?我认为,对于视图切换,我们需要将其包含在app委托方法中,是否有任何我们需要遵守的经验法则?

谢谢!

2 个答案:

答案 0 :(得分:3)

在启动时调用它,application:didFinishLaunchingWithOptions:通常包含初始化应用程序的逻辑(例如,设置核心数据对象,注册推送通知等)。另一方面,viewDidLoad的目的是在显示视图控制器之前初始化它。

答案 1 :(得分:2)

应用程序:didFinishLaunchingWithOptions:应该用于启动应用程序时必须进行的设置,例如

  • 核心数据堆栈
  • 恢复申请状态
  • 创建应用程序导航控制器或标签栏

viewDidLoad 应该用于只需要为该特定视图控制器完成的任何配置。在某些情况下,视图可能无法加载,因此在应用程序委托中进行该配置毫无意义。

e.g

  • 加载视图时打开HTTP连接
  • 询问视图的位置数据