iOS的init相关及其相关方法的经验漫谈

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文件将不再起作用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容