【问题标题】:What are the differences between didFinishLaunchingWithOption and viewDidLoaddidFinishLaunchingWithOption 和 viewDidLoad 有什么区别
【发布时间】:2012-10-24 16:12:16
【问题描述】:

didFinishLaunchingWithOptionviewDidLoad这两种方法有什么区别?

前者是AppDlegate.m的方法 而后者是ViewController.m的一个方法,但它们都执行相同的任务,将UI加载到视图上。

【问题讨论】:

    标签: iphone viewdidload


    【解决方案1】:

    application:didFinishLaunchingWithOptions: 是一个 UIApplicationDelegate 协议方法,当 iOS 完成为您的应用程序运行设置区域时调用它,它是您(开发人员)加载视图控制器等的插入点。

    另一方面,viewDidLoad 方法是UIViewController 类的方法,当UIViewController 的实例将其视图加载到内存中时会调用该方法。来自 Apple 的文档:

    在控制器的视图加载到内存后调用。

    讨论 在视图控制器将其视图层次结构加载到内存后调用此方法。这种方法是 无论视图层次结构是否从 nib 加载都调用 文件或在 loadView 方法中以编程方式创建。你通常 覆盖此方法以对视图执行额外的初始化 从 nib 文件加载。

    【讨论】:

    • 但是如果我想将 UIButton 加载到视图中,我可以将代码放在 viewDidLoad 和 didFinishLaunchingWithOptions 方法中。对吗?
    • 不,didFinishLaunchingWithOptions 用于应用程序级别设置。如果您需要修改特定视图控制器的子视图,则需要在 viewDidLoad 中进行。 didFinishLaunchingWithOptions 方法对其总执行时间有二十 (20) 秒的限制,20 秒后您的应用程序会被 iOS 杀死,因此最好养成避免将代码放入此方法的习惯,如果它可以转到其他地方。
    • 这真的很有用,尤其是 20 秒的东西。非常感谢!
    猜你喜欢
    • 2011-03-26
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    相关资源
    最近更新 更多