gpt4 book ai didi

iphone - 删除dealloc中的所有 subview ?

转载 作者:行者123 更新时间:2023-12-03 20:26:05 32 4
gpt4 key购买 nike

我目前的理解是 super View 保留了它们的每个 subview 。对于 UIView 的子类,我是否需要作为 dealloc 的一部分从其 super View 中删除所有 subview ?我目前刚刚发布我的 IBOutlet,删除观察到的通知,并清除任何讨厌的 ivars。

或者删除和释放 subview 是 UIView 的 [super dealloc] 的一部分?

最佳答案

作为 View 释放的一部分, subview 会自动删除。所以你不需要删除它们。但是,如果您的 View 保留了其任何 subview [除了自动保留之外],您应该在释放期间释放它们。

例如,假设您的 View 包含以下代码:

[头文件]

 UILabel *myLabel;  
@property (nonatomic, retain) UILabel *myLabel;

[实现文件]

 someLabel = [[UILabel alloc]initWithFrame: someFrame];
[self addSubview: someLabel];
self.myLabel = someLabel;
[someLabel release]; // now retained twice, once by the property and once as a subview

someButton = [[UIButton alloc]initWithFrame: someOtherFrame];
[self addSubview: someButton];
[someButton release]; // retained once as it is a subview

那么你的 dealloc 方法将如下所示:

 - (void) dealloc {
[myLabel release];
[super dealloc];
}

关于iphone - 删除dealloc中的所有 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609640/

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