什么时候应该在-(Void)viewDidUnload而不是在-dealloc中释放对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

什么是-(void)viewDidUnload

提问于
用户回答回答于

实现它的一个最重要的原因是UIViewController子类通常还包含对视图层次结构中各种子视图的拥有引用。例如,这些属性可以IBOutlets在从一个笔尖加载时,或以编程方式在内部-loadView进行加载。

子视图的附加所有权UIViewController意味着,即使从视图层次结构中删除视图并释放以节省内存,子视图也通过视图释放,但它们实际上不会被释放,因为它UIViewController本身仍包含其自己的优秀保留对这些对象的引用。释放UIViewController这些对象的附加所有权可确保它们将被释放以释放内存。

用户回答回答于

正如文件所述

在视图控制器需要释放其视图以及与该视图关联的任何对象以释放内存时,在低内存条件下调用它。

在相同的情况下dealloc,方法仅在OS3及更高版本中可用。

扫码关注云+社区