• 【Demo 0001】iPhone程序运行过程


    本章学习要点:

          1.  掌握iPhone应用程序运行过程

          2.  掌握 iPhone应用程序生命周期

          3. 了解代码工程结构.

      一、iPhone 应用程序运行过程

         NewImage

        如上图所示,iPhone应用程序总是从main开始经过UIApplicationMain函数进入UIKit框架,此函数将完成三件事:

        1.   创建应用程序对象;  

        2.   启动消息事件循环;      

        3.   绑定应用程序代理类;从而将程序事件分发到上层代码中。

    二、iPhone应用程序生命周期

          1.  创建iOS 》Empty application工程后,通过Symbol Navigator 可以找到AppDelegate类中包括6个方法:

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

        描述:程序完成启动开始创建视图

        - (void)applicationWillResignActive:(UIApplication *)application

        描述:程序将进入未激活状态

        - (void)applicationDidEnterBackground:(UIApplication *)application

        描述:程序进入后台

        - (void)applicationWillEnterForeground:(UIApplication *)application

        描述:程序将进入前台

        - (void)applicationDidBecomeActive:(UIApplication*)application

        描述:程序处于激法状态 

        - (void)applicationWillTerminate:(UIApplication *)application

        描述:程序将退出

      2. 分别插入日志代码到以上各方法内;

        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
        {
            // … 
                       NSLog(@"applicationDidFinishLaunching"); 
            return YES; 
        }

         - (void)applicationWillResignActive:(UIApplication *)application 
        {

            NSLog(@"applicationWillResignActive"); 
        }

     

        - (void)applicationDidEnterBackground:(UIApplication *)application 
        {

            NSLog(@"applicationDidEnterBackground");
        }

     

        - (void)applicationWillEnterForeground:(UIApplication *)application
        {
            NSLog(@"applicationWillEnterForeground");
        } 

     

        - (void)applicationDidBecomeActive:(UIApplication *)application
        {
            NSLog(@"applicationDidBecomeActive");
        }

     

        - (void)applicationWillTerminate:(UIApplication *)application
        {
            NSLog(@"applicationWillTerminate");
        }

     

      3. 测试并分析程序调用过程

        a. 程序启动后显示

           2013-06-12 16:11:00.994 Demo0001[3974:c07] applicationDidFinishLaunching

           2013-06-12 16:11:00.995 Demo0001[3974:c07] applicationDidBecomeActive

           

           程序启动后,并进入激活状态

        b. 按下Home键后显示

           2013-06-12 16:12:43.806 Demo0001[4016:c07] applicationWillResignActive

           2013-06-12 16:12:43.807 Demo0001[4016:c07] applicationDidEnterBackground


           程序先进入非激法状态再切入到后台

        c. 点击程序图标后显示

           2013-06-12 16:13:00.609 Demo0001[4016:c07] applicationWillEnterForeground       
           2013-06-12 16:13:00.610 Demo0001[4016:c07] applicationDidBecomeActive
         

           程序切入到前台并进入状态  

        d. 锁屏后显示

           2013-06-12 16:13:16.478 Demo0001[4016:c07] applicationWillResignActive

           2013-06-12 16:13:16.478 Demo0001[4016:c07] applicationDidEnterBackground

     

           程序进入非激活状态并进入后台

        e. 解锁后显示ß 

          2013-06-12 16:13:27.502 Demo0001[4016:c07] applicationWillEnterForeground 
          2013-06-12 16:13:27.503 Demo0001[4016:c07] applicationDidBecomeActive

    三、代码工程结构

             Tmp1b5f8216

             在Demo0001项目创建后,系统自动创建了3个文件夹:

            1.  Demo0001   存放代码以及配置文件的地方;

                 在此文件夹中有一个supporting Files文件

                 Demo0001 - info.plist    - 工程配置字典

                 infoPlist.strings                - 多国语言文件

                 Demo0001-Prefix.pch   - 预编译文件

                 Default.png                      - 显示在iPhone主界面中的ICON, 针对iPhone4以前(320*480);

                 Default@2x.png              - 显示在iPhone主界面中的ICON, 针对iPhone4, 4S(640x960)

                 Default-568@2x.png      - 显示在iPhone主界面中的ICON, 针对iPhone5以前(640x1136)

           2.  Frameworks  存放工程中用到的框架库文件;

           3.  Products 存入工程输出文件

     四、参考资料
        http://justsee.iteye.com/blog/1592553           讲的非常全面

    演求代码

  • 相关阅读:
    HDU 4489 The King’s Ups and Downs (DP+数学计数)
    HDU 2084 数塔 (水DP)
    CodeForces 706C Hard problem (水DP)
    CodeForces 706B Interesting drink (二分查找)
    CodeForces 706A Beru-taxi (数学计算,水题)
    HDU 4438 Hunters (数学,概率计算)
    机器学习-基础知识
    如何学习-学习理论(A-1)-KOLB学习周期理论
    如何学习-辅助工具
    如何学习-入门之后
  • 原文地址:https://www.cnblogs.com/ztercel/p/3132559.html
Copyright © 2020-2023  润新知