gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 12:21:48 26 4
gpt4 key购买 nike

-(void)viewDidUnload 有什么用处?

我不能只释放 -dealloc 中的所有内容吗?如果 View 确实卸载了,难道不会调用 -dealloc 吗?

最佳答案

除了已经说明的内容,我想详细说明-viewDidUnload 背后的逻辑。

实现它的最重要原因之一是 UIViewController 子类通常还包含对 View 层次结构中各种 subview 的拥有引用。例如,这些属性可以在从 nib 加载时通过 IBOutlets 设置,或者在 -loadView 内以编程方式设置。

UIViewController 对 subview 的附加所有权意味着即使将其 View 从 View 层次结构中移除并释放以节省内存,通过这 subview 也被 View 释放,它们不会实际上被释放是因为 UIViewController 本身仍然包含对这些对象的未完成保留引用。释放这些对象的 UIViewController 额外所有权可确保它们也将被释放以释放内存。

您在此处发布的对象通常会在 UIViewController View 被 重新加载 时重新创建并重新设置,无论是从 Nib 还是通过 的实现-loadView.

另请注意,在调用此方法时,UIViewController view 属性为 nil

关于iphone - 我什么时候应该在 -(void)viewDidUnload 而不是 -dealloc 中释放对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com