zoukankan      html  css  js  c++  java
  • 详解 IOS 7.1 程序启动原理

    程序都是从Main方法入口的 IOS 也不例外

    int main(int argc,char * argv[])

    {

        @autoreleasepool {

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

        }

    }

    在IOS 里main 方法里有个UIApplicationMain里面带有4个参数

    param 1: argc : 对应argv的参数数量

    param 2: argv:    参数变量列表 (加载应用程序对应的-info.plist文件信息)

    param 3: 指定UIApplication类或子类的名称。如果为nil默认就是UIApplication

    param 4: 设置应用程序的代理对象。  如果是nil,则从应用程序的主nib文件加载的代理对象。

    返回值: 这个方法一般不会返回,即使用户点击了IOS的home按钮,程序会把它移动到后台当中。

    程序正常退出时,UIApplicationMain函数才返回

     

    当程序启动完成后会来到AppDelegate,它继承UIResponder并遵循了UIApplicationDelegate

    UIResponder:定义了响应和处理事件的接口,它是UIApplication、UIWindow、UIView的父类能够接收用户的运动事件和触摸事件

    // 程序启动完成

    (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    // 程序失去交点

    (void)applicationWillResignActive:(UIApplication *)application

    // 程序进入后台

     (void)applicationDidEnterBackground:(UIApplication *)application
    // 程序进入前台

     (void)applicationWillEnterForeground:(UIApplication *)application

    // 程序获取焦点

    (void)applicationDidBecomeActive:(UIApplication *)application

    // 程序即将关闭

     (void)applicationWillTerminate:(UIApplication *)application

     

    如果程序没有设置主要的启动storyboard文件,而且也没有在

    (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    方法里设置window对象是不能进行正常活动

    通常在此方法里设置

    (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    {

    self.window = [[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];

    self.window.backgroundColor = [UIColorwhiteColor];

    self.viewController =[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] ;

     // 设置根视图控制器

    self.window.rootViewController =self.viewController;

     // 设置主视图并可见  窗口只有一个主视图

     [self.windowmakeKeyAndVisible];

     }

     至此有了window对象后就能够在上面添加各种View进行自定义界面了

     反之没有window对象 就看不见任何UI界面

  • 相关阅读:
    业余时间决定人生
    单片机好网站
    坚持 放弃
    励志博客园网址
    资料下载好网站
    和易法
    二、栈
    一、顺序表
    uCOS任务中的OSTCBDly
    三(1)、队列(链队列)
  • 原文地址:https://www.cnblogs.com/llios/p/3922073.html
Copyright © 2011-2022 走看看