zoukankan      html  css  js  c++  java
  • iOS开发之iOS程序的启动过程

    程序启动的完整过程:

    1main函数

    2UIApplicationMain

    * 创建UIApplication对象

    * 创建UIApplication的delegate对象

    3delegate对象开始处理(监听)系统事件(没有storyboard)

    * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法

    * 在application:didFinishLaunchingWithOptions:中创建UIWindow

    * 创建和设置UIWindow的rootViewController

    * 显示窗口

    3)根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(storyboard)

    * 创建UIWindow

    * 创建和设置UIWindow的rootViewController

    * 显示窗口

    4UIApplicationMain

    main函数中执行了一个UIApplicationMain这个函数:

    int UIApplicationMain(int argc, char *argv[], NSString

    *principalClassName, NSString *delegateClassName);

    各参数含义:

    argcargv:直接传递给UIApplicationMain进行相关处理即可。

    principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值。

    delegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议。

    UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性。

    接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)。

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

  • 相关阅读:
    Hadoop添加节点的方法
    CSS中如何实现DIV居中
    Python新手入门教程,从环境准备到掌握基本编程
    八、使用pull解析器操作xml文件
    九、使用SharedPreferences进行数据存储
    十八、发送xml数据给服务器
    四、对应用进行单元测试
    二、短信发送器
    一、电话拨号器
    十四、ContentProvider往通讯录添加联系人和获取联系人
  • 原文地址:https://www.cnblogs.com/lifengfneg/p/4773866.html
Copyright © 2011-2022 走看看