Objective-C基础之NSObject + (void)load 、+ (void)Initialize、以及viewController的生命周期
-
Objective-C语言中类都是继承与NSObject的,这个两个类方法正是NSObject方法
-
load方法什么时候被调用
Invoked whenever a class or category is added to the Objective-C runtime; implement this method to perform class-specific behavior upon loading.
程序运行。main函数之前调用;class 和 category 加载进Objective-C运行时调用;实现这个方法在类加载时实现特定的行为; 只会调用一次;如果子类实现+load方法会先调用父类的load方法,category会先调用原类的方法。
-
initialize方法什么时候会被调用
Initializes the class before it receives its first message
类收到第一条信息的时候调用;initialize方法是会有可能被调用多次的,当子类没有实现,会调用父类的initialize方法,或者子类实现显示的调用【super initialize】;他是线程安全的,当一个线程发送第一条消息,其他线程会被block直到这条线城初始化完成
- UIViewController的生命周期
1.类镜像加载到内存->load
2.给类对象第一次发消息->initialize
3.初始化viewcontroller->initWithCoder(如果是storyboard加载都会调用这个初始化方法)、initWithNibName(纯代码加载或者XIB加载会调用)
4.创建ViewController管理的View-> loadView
View加载完成->ViewDidLoad
5.视图即将显示->ViewWillAppear
6.视图已经显示->ViewDidAppear
7.视图即将进行布局->ViewWillLayoutSubviews
8.视图布局完成->ViewDidLayoutSubviews
9.视图即将消失->ViewWillDisappear
10.视图已经消失->ViewDidDisappear
11.如果视图收到内存净高->didReceivedMemeryWarning
11.视图释放->Dealloc
网友评论