您的位置:首页 > 移动开发 > IOS开发

iOS中程序启动流程

2015-09-19 11:59 393 查看
1.任何一个程序,无论是基于Mac OS 还是 iOS,程序都是从main.m文件的main函数开始执行的.

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

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

@autoreleasepool {

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

}

}


1、principalClassName:应⽤用程序对象的类名(UIApplication或其⼦子类)!

2、delegateClassName:应⽤用程序delegate的类名。(任何接受了 UIApplicationDelegate的类)! UIApplicationMain根据上述两个类名创建应⽤用程序实例、应⽤用程序代理实例。

然后建⽴立事件循环(runloop),检测程序的各种事件(程序开始启动,接收到触 摸等等)

UIApplicationMain在程序入口函数mian函数中调用,主要实现了3个功能:

1.创建应用程序(UIApplication)实例

2.创建应用程序代理实例

3.建立事件循环(runloop:死循环,不断检测程序运行状态,是否被触动,摸,晃动等)

2.执行UIApplicationMain 函数时做了跳转,转到了AppDelete(应用程序代理)中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}

方法中创建Windown

AppDelete

1.应⽤用程序代理,主要检测应⽤用程序的状态并做出相应的处理。

2.应⽤用程序的状态有很多,⽐比如:程序启动、进⼊入活跃状态、进到后 台、内存警告、收到远程消息等等

3.任何接受了UIApplicationDelegate协议的对象都可以成为应⽤用程序 代理。

4.一旦应⽤用程序的某种状态触发,就会执⾏行相应的代理⽅方法。

UIApplicationdelegate(代理协议)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: