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