- (id)init
{
self = [super init];
if (self)
{
self.view.backgroundColor = [UIColor greenColor];
NSLog(@"11111");
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"22222");
}
一个viewcontroller的生命周期,应该是先走 init,再走 viewDidLoad,但是上面这段代码,却总是先打印1111111,后打印222222.
结论:init 的时候,view还未加载完成,所以为nil,此时如果调用了self.view.XXX的话,编译器会直接调用别的方法加载view,所以就先打印了222222.