【问题标题】:UIButton - should we release or not?UIButton - 我们应该释放还是不释放?
【发布时间】:2010-02-02 09:58:03
【问题描述】:
我想在视图上动态添加一个按钮。这是代码。
UIButton *x=[UIButton buttonWithType:UIButtonTypeRoundedRect];
这里,我没有使用“alloc”函数。
该陈述的问题如下。
- 如果我们在相同的情况下使用 imageview,我们必须创建一个临时 imageview 添加到当前视图并释放它。按钮怎么办?
- 如何分配和取消分配按钮?
- 是否分配了按钮?它的内存是如何管理的?
- 现在当我使用 [x 版本] 时; - 是对还是错?
【问题讨论】:
标签:
iphone
objective-c
interface-builder
uibutton
cocoa-design-patterns
【解决方案1】:
没有 alloc/init 或 new 所以它会在不再需要时自动释放。当您将其添加到 UIView 时,计数会增加并由视图保留,然后在视图释放时也会释放。
【解决方案2】:
在这种情况下,您无需致电 release。由于您使用的是便利构造函数,因此返回的对象是自动释放的对象。
如果您使用 alloc / init 形式,则您负责释放该对象。
【解决方案3】:
UIButton *x=[UIButton buttonWithType:UIButtonTypeRoundedRect];
使用此方法无法释放按钮
而不是使用
UIButton *x = [[UIButton alloc]init];
然后释放