首页 > 技术文章 > awakeFromNib与viewDidLoad的区别

lzlsky 2013-09-11 09:24 原文

当一个nib文件对应两个类,File's Owner的class为XXXViewController,Objects下的View对应的为XXXView时:

awakeFromNib:在XXXView.m文件中有效,即只有写在这个类文件中才会调用,写在XXXViewController.m文件中时,不会被调用。
viewDidLoad:写于XXXViewController.m文件中,作用同awakeFromNib。
 
当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的 awakeFromNib函数来响应这个消息,执行一些必要的操作。也就是说通过nib文件创建view对象是执行awakeFromNib 

viewDidLoad 
当view对象被加载到内存是就会执行viewDidLoad,所以不管通过nib文件还是代码的方式创建对象都会执行viewDidLoad 

所以用以下代码运行程序时不执行awakeFromNib

 

推荐阅读