【问题标题】:Objective C: When to use methods in App Delegate and when to use methods in View ControllerObjective C:何时在 App Delegate 中使用方法以及何时在 View Controller 中使用方法
【发布时间】:2011-04-07 04:33:41
【问题描述】:

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

App 委托中的方法:

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

ViewController 中的方法:

- (void)viewDidLoad 

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

谢谢!

【问题讨论】:

    标签: iphone objective-c delegates uiviewcontroller uiapplicationdelegate


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      例如

      • 在视图加载时打开 HTTP 连接
      • 请求查看位置数据

      【讨论】:

        猜你喜欢
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        • 2011-07-01
        • 2016-02-13
        • 1970-01-01
        • 2013-05-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多