viewDidUnload只有在收到内存警告后,controller连着的主View被释放了才会调用。
而dealloc则是Controller释放的时候调用的,当然这个时候连着它的View也会被释放,但是这个时候是不会调用viewDidUnload的。
init
和viewDidLoad
,当你创建一个Controller的时候就会调用init
,但是只有你把controller放到window上显示的时候才会调用viewDidLoad
。
同样,当controller不再显示,并且内存不够的时候,系统可能会调用其viewDidUnload
,这个时候对象并不会dealloc
,只不过再次显示的时候会重新viewDidLoad
一遍