解析 Info.plist
加载相关信息,例如闪屏。
沙箱(SandBox)建立、权限检查。
Mach-O 加载
寻找合适当前 CPU 类别的部分。
加载所有依赖的 Mach-O 文件(递归调用 Mach-O 加载的方法)。
定位内部、外部指针引用,例如字符串、函数等。
执行声明为 attribute((constructor)) 的 C 函数。
加载分类(Category)中的方法。
C++ 静态对象加载、调用 Objc 的 +load 函数。
程序执行
调用 main()
调用 UIApplicationMain()
调用 applicationWillFinishLaunching 代理方法
解析
1 程序入口
进入 main 函数,设置 AppDelegate 为函数的代理
2 程序完成加载
[AppDelegate application:didFinishLaunchingWithOptions:]
3 创建window窗口
4 程序被激活
[AppDelegate applicationDidBecomeActive:]
5 当点击 command+H 时(针对模拟器,手机是当点击home键)
程序取消激活状态
[AppDelegate applicationWillResignActive:];
程序进入后台
[AppDelegate applicationDidEnterBackground:];
6 点击进入工程
程序进入前台
[AppDelegate applicationWillEnterForeground:]
程序被激活
[AppDelegate applicationDidBecomeActive:];
控制器的生命周期
// 非storyBoard(xib或非xib)都走这个方法
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
NSLog(@"%s", __FUNCTION__);
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
}
return self;
}
// 如果连接了串联图storyBoard 走这个方法
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
NSLog(@"%s", __FUNCTION__);
if (self = [super initWithCoder:aDecoder]) {
}
return self;
}
// xib 加载 完成
- (void)awakeFromNib {
[super awakeFromNib];
NSLog(@"%s", __FUNCTION__);
}
// 加载视图(默认从nib)
- (void)loadView {
NSLog(@"%s", __FUNCTION__);
self.view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.view.backgroundColor = [UIColor redColor];
}
//视图控制器中的视图加载完成,viewController自带的view加载完成
- (void)viewDidLoad {
NSLog(@"%s", __FUNCTION__);
[super viewDidLoad];
}
//视图将要出现
- (void)viewWillAppear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
[super viewWillAppear:animated];
}
// view 即将布局其 Subviews
- (void)viewWillLayoutSubviews {
NSLog(@"%s", __FUNCTION__);
[super viewWillLayoutSubviews];
}
// view 已经布局其 Subviews
- (void)viewDidLayoutSubviews {
NSLog(@"%s", __FUNCTION__);
[super viewDidLayoutSubviews];
}
//视图已经出现
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
[super viewDidAppear:animated];
}
//视图将要消失
- (void)viewWillDisappear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
[super viewWillDisappear:animated];
}
//视图已经消失
- (void)viewDidDisappear:(BOOL)animated {
NSLog(@"%s", __FUNCTION__);
[super viewDidDisappear:animated];
}
//出现内存警告 //模拟内存警告:点击模拟器->hardware-> Simulate Memory Warning
- (void)didReceiveMemoryWarning {
NSLog(@"%s", __FUNCTION__);
[super didReceiveMemoryWarning];
}
// 视图被销毁
- (void)dealloc {
NSLog(@"%s", __FUNCTION__);
}
网友评论