ios 程序的启动原理

106 阅读1分钟

ios 程序启动原理: 1.执行mian函数,在main函数中会执行UIApplicationMain函数,UIApplicationMain会执行几件事情: a.创建UIApplication对象 b.创建AppDelegate对象 c.开启RunLoop事件循环,保证程序不退出 上面这些事情执行完后加载 info.plist文件,然后看 Main storyboard file base name 里面有没有Main,有Main就去创建storyBoard,然后去加载MainstroyBoard里面的控制器设置为根控制器,如果没有的Main,程序执行完成.

2.UIApplication UIApplicationMain执行后先初始化UIApplication对象。UIApplication对象是应用程序的核心,每个App只有一个UIApplication实例(通过[UIApplication shareApplication]获取)。UIApplication的最主要作用是作为一个应用程序的核心,程序事件(事件包括触摸事件触摸事件,加速计事件,远程控制事件)首先到达UIApplication中,然后再由UIApplication进行分发。

另外UIApplication还提供openURL打开其他应用程序、注册远程、本地通知等功能。

3.AppDelegate UIApplication初始化后进入Appdelegate的didFinishLaunchingWithOptions函数中,此时应用程序界面真正开始创建。Appdelegate顾名思义是程序代理类,它的作用是处理一些App生命周期中出现的重要事件,如程序状态发生改变(前台到后台等),接收到远程、本地通知,初始化程序视图等。简言之,UIApplication是接收事件,而事件处理则交由程序代理类AppDelegate执行。 当程序运行到Appdelegate的didFinishLaunchingWithOptions时会创建UIWindow,我们把自定义ViewController加入UIWindow中,此时程序视图真正开始建立。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
return YES;
}