IOS开发 - IOS程序的完整启动过程


1. Info.plist和pch文件的作用

2. UIApplication的常见使用

3. AppDelegate的代理方法

4. UIApplication , AppDelegate , UIWindow , UIViewController 的关系

5. IOS程序的完整启动过程


﹣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
// 显示窗口



控制器创建view的完整过程


* 控制器的view是延迟加载









猜你喜欢

转载自cwlong.iteye.com/blog/2236812