[size=medium][color=red]
1. [url=http://cwlong.iteye.com/admin/blogs/2236795]Info.plist和pch文件的作用[/url]
2. [url=http://cwlong.iteye.com/blog/2236809]UIApplication的常见使用[/url]
3. [url=http://cwlong.iteye.com/blog/2236811]AppDelegate的代理方法[/url]
4. [url=http://cwlong.iteye.com/blog/2236810]UIApplication , AppDelegate , UIWindow , UIViewController 的关系[/url]
5. [url=http://cwlong.iteye.com/blog/2236812]IOS程序的完整启动过程[/url]
[/color][/size]
﹣IOS程序的完整启动过程﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣我是分割线﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣
[size=large][color=red]控制器创建view的完整过程
[/color][/size]
* 控制器的view是延迟加载
[img]http://dl2.iteye.com/upload/attachment/0111/1475/1585f1d9-33f1-3b4a-a5f3-8a5826ad1a81.png[/img]
1. [url=http://cwlong.iteye.com/admin/blogs/2236795]Info.plist和pch文件的作用[/url]
2. [url=http://cwlong.iteye.com/blog/2236809]UIApplication的常见使用[/url]
3. [url=http://cwlong.iteye.com/blog/2236811]AppDelegate的代理方法[/url]
4. [url=http://cwlong.iteye.com/blog/2236810]UIApplication , AppDelegate , UIWindow , UIViewController 的关系[/url]
5. [url=http://cwlong.iteye.com/blog/2236812]IOS程序的完整启动过程[/url]
[/color][/size]
﹣IOS程序的完整启动过程﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣我是分割线﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣
// 1.1程序一执行就会执行main函数
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
// 2.然后会执行UIApplicationMain
int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);
// 2.1根据参数 principalClassName 创建UIApplication对象
// 2.2根据参数 delegateClassName 创建UIApplication的delegate对象
//3. delegate对象开始处理(监听)系统事件,分两种情况(有storyboard和没storyboard)
//3-1.delegate对象开始处理(监听)系统事件(没有storyboard)
//3-1-1 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//3-1-2 在application:didFinishLaunchingWithOptions:中创建UIWindow
self.window = [[UIWindow alloc] initWithFrame:[[uiScreen mainScreen] bounds]];
//3-1-3 创建和设置UIWindow的rootViewController(根控制器)
CwlMainViewController *mainViewController = [CwlMainViewController alloc] init];
self.window.rootViewController = mainViewController; // 设置根控制器
//3-1-4 显示窗口
[self.window makeKeyAndVisable];
return YES;
}
//3-2.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
// 创建UIWindow
// 创建和设置UIWindow的rootViewController
// 显示窗口
[size=large][color=red]控制器创建view的完整过程
[/color][/size]
* 控制器的view是延迟加载
[img]http://dl2.iteye.com/upload/attachment/0111/1475/1585f1d9-33f1-3b4a-a5f3-8a5826ad1a81.png[/img]