他们说:
//释放任何保留的子视图 主要观点。 //例如self.myOutlet = 无;
我以前从未见过这个。所以我想知道他们是否在这里谈论笔尖?
答案 0 :(得分:2)
类似于init
中您分配的任何内容应该在dealloc
中未分配。
如果您在viewDidLoad
中分配内存,则应在viewDidUnload
中发布。
将nib文件带入图片时,问题会变得混乱。如果您手动加载nib文件,则应手动将其卸载并将所有IBOutlets
设置为nil。
答案 1 :(得分:1)
如果有理由保留它,则不必如此,但假设您需要通过插座访问实体,如果视图已被拆除,那么您应该释放。否则,即使nib本身已被卸载,您的视图控制器也会声明对所有IBOutlet的保留,这样就可以防止它们被解除分配。由于这些对象可能具有纹理并支持它们,因此iPhone使用主ram进行视频处理,可以非常快速地添加大量浪费的内存。
此外,如果再次调用viewDidLoad,则在重新加载nib时将创建一个新对象并将其分配给该出口,因此如果您在其他任何地方使用它(将其他对象中的属性设置为IBOutlet指向的对象) )那么你的应用可能会以不一致的状态结束。