iOS Developer

iOSApp启动原理解析(一)main.m

2017-08-24  本文已影响380人  找不到工作的iOS

app程序入口main

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        
               return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

1.了解UIApplicationMain方法

int main(int argc, char * argv[]) {
    @autoreleasepool {
        NSLog(@"开始运行app");
        UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        NSLog(@"app结束"); //@"app结束"永远不会被执行
        return 0;
       }
}
D66737BE-74DE-47D9-8BCE-0893851252A2.png
执行顺序如下:
1.创建一个application对象
2.设置了代理
3.创建了一个事件循环(Runloop,第二篇分析源码)
4.读取info.plist文件(只读)
5.创建了一个window
6.加载第一个控制器 (默认是Main故事版)

UIApplicationMain参数的意义

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        
       return UIApplicationMain(argc, argv, nil, NSStringFromClass([CustomAppDelegate class]));
    }
}
#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char * argv[]) {
    @autoreleasepool {
        
       return UIApplicationMain(argc, argv, @"wfCustomApplication", NSStringFromClass([CustomAppDelegate class]));
    }
}

2.info.plist与启动

总结

上一篇下一篇

猜你喜欢

热点阅读