如果在
中写一些东西 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSLog(@"Starting point 1");
}
的main.m
int main(int argc,char * argv[])
{
......
NSLog(@"Starting point 0");
}
哪一个更有用main.m或appDelegate.m一个和哪个scenerio。
答案 0 :(得分:6)
这篇文章解释了应用启动顺序。
http://oleb.net/blog/2011/06/app-launch-sequence-ios/
作为文章的简历,结论是:
除了应用程序:didFinishLaunchingWithOptions:
之外,在启动序列期间还有几个自定义代码入口点(通常不需要):
在调用main()
之前直接在UIApplicationMain()
。
自定义UIApplication子类的init方法。
我们的应用程序的initWithCoder:
或awakeFromNib方法如果是从NIB文件(默认)创建的,则委托。
我们的应用程序的+ initialize
方法委托类或自定义UIApplication子类。任何类在从程序中发送第一条消息之前都会收到+ initialize消息。
注意此序列仅在实际启动应用时发生。如果应用程序已经运行并且只是从后台返回,则不会发生这种情况。
答案 1 :(得分:0)
您应该使用UIApplicationDelegate
,而不是 main.m
。
didFinishedLaunching 方法是一个很好的(但不是唯一的)起点。
只有您确定所有iOS特定代码都已正确加载。 在主要负载可能有一个错误,该行将在主要执行,但不在 didFinishedLaunching 方法中执行。
答案 2 :(得分:0)
main()方法是根据iOS应用程序调用的第一件事,但是一般来说,永远不要触及iOS编程中的main()函数。 该 - (BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions(NSDictionary *)launchOptions 在成功启动应用程序后发生,应该用于您在应用程序启动时需要执行的任何过程。