在iPhone或iPad应用程序中调用main时会发生什么?

时间:2011-11-17 10:39:21

标签: iphone objective-c xcode main uiapplicationdelegate

我目前正在尝试使用iPhone应用调试问题。当我在Xcode中运行它时main被调用,但不是- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions。这引出了一个基本问题,它可以帮助我解决这个问题,同时也可以了解更多iPhone / iPad应用程序的启动顺序。那么,任何人都能以简洁的方式解释在iPhone或iPad应用程序中调用main时会发生什么?

谢谢!

3 个答案:

答案 0 :(得分: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中查看这些条目。

答案 1 :(得分:1)

我刚发现this非常有趣。

答案 2 :(得分:0)

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