【问题标题】:What happens when main is called in an iPhone or iPad app?在 iPhone 或 iPad 应用程序中调用 main 时会发生什么?
【发布时间】:2011-11-17 10:39:21
【问题描述】:

我目前正在尝试调试 iPhone 应用程序的问题。当我在 Xcode 中运行它时,会调用 main,但不会调用 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions。这让我想到了一个基本问题,它应该可以帮助我解决这个问题,而且还可以更多地了解 iPhone/iPad 应用程序的启动顺序。那么,谁能简明扼要地解释一下在 iPhone 或 iPad 应用程序中调用 main 时会发生什么?

谢谢!

【问题讨论】:

    标签: iphone objective-c xcode main uiapplicationdelegate


    【解决方案1】:

    当 main 被调用时,

    UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);

    被调用。

    这是 Apple 对这种方法的看法。

    如果为 principalClassName 指定 nil,则使用 Info.plist 中 NSPrincipalClass 的值。如果没有指定 NSPrincipalClass 键,则使用 UIApplication 类。委托类将使用 init 实例化。

    您可以在 main.h 或 info.plist 中查看这些条目。

    【讨论】:

      【解决方案2】:

      我刚刚找到了this,这很有趣。

      【讨论】:

        【解决方案3】:

        另请注意,如果您在 Xcode 中使用其中一个模板创建一个新项目,Xcode 将构建一个非常好的 main 方法,它肯定会为您调用 didFinishLaunchWithOptions,您可以分析并遵循 Xcode 的引导。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-27
          相关资源
          最近更新 更多