Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios应用程序的起点_Ios_Objective C - Fatal编程技术网

ios应用程序的起点

ios应用程序的起点,ios,objective-c,Ios,Objective C,如果你写点什么 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"Starting point 1"); } main.m int main(int argc,char * argv[]) { ...... NSLog(@"Starting point 0"); } 哪个ma

如果你写点什么

 - (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更有用,在哪个场景中使用
UIApplicationDelegate
而不是
main.m

didFinishedLaunching方法是一个很好(但不是唯一)的起点

只有在那里,您才能确保正确加载了所有特定于iOS的代码。
在main中,加载可能有错误,该行将在main中执行,但不会在didFinishedLaunching方法中执行。

这是一篇解释应用程序启动顺序的有趣文章

作为文章的简历,结论是:

除了application:
didfishlaunchingwithoptions:
,在启动序列中还有几个自定义代码的入口点(通常不需要这些入口点):

在调用
UIApplicationMain()
之前,直接在
main()
中。 自定义UIApplication子类的init方法。 应用程序委托的
initWithCoder:
或awakeFromNib方法(如果它是从NIB文件创建的)(默认值)。 我们的应用程序委托类或自定义UIApplication子类的+
initialize
方法。任何类在从程序中发送其第一条消息之前都会收到+初始化消息

请注意此序列仅在实际启动应用程序时发生。如果应用程序已经在运行,并且只是从后台恢复,则不会发生任何情况。

对于iOS应用程序来说,调用main()方法是第一件事,但是在iOS编程中,一般规则是永远不要使用main()函数。 这个 -(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动(NSDictionary*)启动选项
成功启动应用程序后发生,应用于应用程序启动时需要执行的任何流程。

您想做什么?我想通过代码设置初始控制器