iphone - 将 View 移动到新的 super View 是否会自动将其从旧的 super View 中释放?

标签 iphone cocoa-touch uiview uiviewcontroller

无论如何,对我来说不清楚,如果使用 addSubview 将 UIView 添加到另一个 View ,它是否会自动从其 super View 中释放?!?我知道一个 View 只能有一个 super View ,但我不清楚如何准确地将 subview 从一个 super View 移动到另一个 super View 。

保留 View ,释放(从旧的 super View ),addSubview到新的 super View

简单地addSubview到新的 super View ?

最佳答案

对于调用 -removeFromSuperView 时 View 是否被释放的问题,它是,并且这记录在 UIView 引用中的 -removeFromSuperView 下。没有明确指出 -addSubView: 调用 -removeFromSuperView,但它是隐含的,可以通过在 UIView 中重载 -removeFromSuperView 进行测试子类。

因此,我认为在这种情况下没有理由调用 -removeFromSuperView 。没有内存管理原因需要这样做,因此这会增加一些代码复杂性(并因此增加潜在的错误),但值(value)不大。即使在我想向后来的开发人员强调此 View 正在更改 View 层次结构的情况下,我也会使用注释而不是此处额外的保留/释放。

关于iphone - 将 View 移动到新的 super View 是否会自动将其从旧的 super View 中释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1128901/

相关文章:

objective-c - 通过 iPhone SDK 获取手机 UUID

swift - CMPedometer 在 Swift 2.0 中出现错误

ios - 以编程方式约束彼此相邻的 3 个 View

ios - 崩溃 [UITableViewCell initWithStyle :reuseIdentifier:]

ios - 含义 - 使用非公共(public) API 的应用程序将被拒绝

iphone - 创建 UITableView 表单的最好和最简单的方法是什么?

ios - 通过 CNContactViewController 显示时,联系人缺少一些必需的键描述符

iphone - 将新时间添加到总时间中

iphone - UIImage 只拉伸(stretch)一部分

ios - UIWebView 水平弹跳不起作用