我的UIViewController类有一个包含多个IBOutlet对象的IBOutletCollection。我知道需要在viewDidUnload中将保留的出口设置为nil,但是我是否还需要将IBOutletCollection设置为nil?或者它应该在dealloc中被释放?还是完全独自留下?
答案 0 :(得分:5)
您需要在nil
中将出口设置为viewDidUnload
,以确保视图控制器在收到内存警告时可以释放尽可能多的内存。为响应内存警告,视图控制器释放其视图以释放视图(及其所有子视图)正在使用的内存。如果您未能释放您保留/持有强引用的那些商店,那些商店引用的子视图将不会被销毁,并且不会释放他们的内存。
是的,你还应该在nil
中将出口集合的属性设置为viewDidUnload
。
此要求与在dealloc
中释放所有保留的ivars /属性的责任无关。