21.程序启动过程

来源:互联网 发布:java map源码 编辑:程序博客网 时间:2024/05/22 12:01
//应用程序的启动过程1.main函数---->UIApplicationMain--->开启事件循环,监听事件(包括系统事件,例如前后台等,还有监听事件队列,事件队列先进先出,取出最前面的事件进行处理,因为一直有个事件循环,所以程序不会退出,也就是UIApplicationMain不会返回)int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);argc、argv:直接传递给UIApplicationMain进行相关处理即可principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值delegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议/////////////////////////////////////////////////UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)程序正常退出时UIApplicationMain函数才返回

四大对象关系图:
这里写图片描述

应用程序启动原理图:
这里写图片描述

0 0
原创粉丝点击