initWithCoder
- 解档方法,使用xib/storyboard等文件都会调用这个方法;
- 并不是一个初始化的好地方(当从Nib中加载时),因为有些outlet可能为nil,所以这个时候我们最好使用awakeFromNib。
awakeFromNib
- 当使用xib/storyboard,是一个好的初始化去处。
- 只会被加载一次。
- 当你需要写一个UIView的子类,并且想在load nib的时候做一些初始化工作的时候,可以选择。bundle在load nib时会给每一个View对象发送一个awakeFromNib消息。
initWithFrame
- 用于代码创建,可以动态地添加组件&设置自身的属性
iOS中比较重要的几个方法
+ (void)load -> +(void)initialize -> - (void)loadView
->
- (void)viewDidLoad ->
- (void)viewWillAppear:(BOOL)animated ->
- (instancetype)initWithCoder:(NSCoder *)aDecoder ->
- (void)awakeFromNib ->
- (instancetype)initWithFrame:(CGRect)frame ->
- (void)layoutSubviews
load:加载到内存中,程序刚启动的时候调用。调用在main函数之前。
initialize:初始化类,类第一次使用的时候调用。
loadView:设置控制器的根View,重写该方法后,以该方法为主,storyboard文件将不再起作用。