zoukankan      html  css  js  c++  java
  • IOS程序启动过程

    程序的启动过程:
     
    main函数中执行了一个UIApplicationMain这个函数
    int main(int argc, char * argv[]) {
        @autoreleasepool {
            return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

        }
    }
    intUIApplicationMain(int argc, char*argv[], NSString *principalClassName, NSString *delegateClassName)
    principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值
    delegateClassName :指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议
    UIApplicationMain底层的实现:
    1.根据principalClassName提供的类名创建UIApplication对象
    2.根据delegateClassName类名创建delegate对象,并赋值给UIApplication对象的delegate属性.
    3.首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法
    4.建立应用程序的MainLoop事件循环,进行事件的处理(不断遍历,不断的从事件的队列中取事件进行处理,app的每个事件都会加到队列中去)(
    4.加载info.plist文件,并解析,看有没有指定main.storyboard文件如果指定就加载。
    5.程序正常退出时就返回
  • 相关阅读:
    .NET Framework 1.13.5 版本安装包下载链接
    可遇不可求的Question之MYSQL获取自增ID的四种方法篇
    20110917 晴
    北海道 7天6夜 自助游
    想你了
    猫忘带电话了
    [转载经验] 探亲签证申请
    帮忙打印
    打印机
    20110910 晴
  • 原文地址:https://www.cnblogs.com/jianghg/p/4572853.html
Copyright © 2011-2022 走看看