美文网首页iOS面试题相关知识点iOS开发
iOS App的生命周期及界面的生命周期

iOS App的生命周期及界面的生命周期

作者: 末上 | 来源:发表于2018-06-21 10:37 被阅读31次

    应用启动执行流程图

    1.应用的生命周期

    应用的生命周期的方法一般写在AppDelegate中

    各个程序运行状态时代理的回调:

    - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    进程即将启动的时候代理会执行该方法

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    进程启动完成程序准备开始运行的时候执行该方法

    - (void)applicationDidFinishLaunching:(UIApplication*)application

    当程序载入后执行

    - (void)applicationDidBecomeActive:(UIApplication *)application 

    当应用程序入活动状态执行

    - (void)applicationWillResignActive:(UIApplication *)application

    当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了

    - (void)applicationDidEnterBackground:(UIApplication *)application

    当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可

    - (void)applicationWillEnterForeground:(UIApplication *)application

    当程序从后台将要重新回到前台时候调用。

    - (void)applicationWillTerminate:(UIApplication *)application

    当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。

    浅析main()和UIApplicationMain()

    intmain(intargc,char* argv[]) {

        @autoreleasepool {

            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));  }

    }

    所有的C语言编写的程序,其执行入口都是main()函数

    这段代码的UIApplicationMain函数会创建一个UIApplication对象,每个iOS应用程序有且仅有一个UIApplication对象,该对象的作用是维护运行循环.一旦程序启动,就会创建这个UIApplication对象,该对象的运行循环就会一直循环下去,main()函数也进入阻塞状态.

    2.界面之间的生命周期

    - (void)viewDidLoad; 

    第一次打开该界面的时候会调用,在这里一般用来做各种数据的初始化。(注意返回到该页面不会执行该方法,除非关闭该页面,重新打开才会执行该方法)

    - (void)viewWillAppear:(BOOL)animated; 

    在上面的didload方法执行完毕之后,页面即将要显示的时候会执行该方法,该方法也可以对数据来进行初始化。(即使是返回到该页面,也会执行该方法)

    - (void)viewDidAppear:(BOOL)animated; 

    等页面加载完之后就执行的方法。

    - (void)viewWillDisappear:(BOOL)animated; 

    页面将要消失执行的方法

    - (void)viewDidDisappear:(BOOL)animated; 

    界面已经消失的时候执行的方法

    相关文章

      网友评论

        本文标题:iOS App的生命周期及界面的生命周期

        本文链接:https://www.haomeiwen.com/subject/sghqyftx.html