这是处理记忆的正确方法吗?
方法1:没有崩溃
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(220.0f, 7.0f, 57.0f, 35.0f)] ;
button = nil;
[button release];
方法2:崩溃
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(220.0f, 7.0f, 57.0f, 35.0f)] ;
[button release];
button = nil;
答案 0 :(得分:1)
无需将保存已分配对象的变量设置为nil。如果您不再需要它,请释放它。就是这样。
答案 1 :(得分:1)
第一个不正确,以及内存泄漏的情况。
我们大多数人都使用第二种方法,它不应该崩溃,
使用方法#2发布相关代码。
答案 2 :(得分:0)
为什么在 button = nil;
之后将 [button release];
按钮值设置为nil你不需要这样做只需要 [button release];
,你的按钮就会被释放而不会有任何泄漏。
答案 3 :(得分:0)
两者都不正确。您应该使用类方法buttonWithType
:来构造按钮。它将根据您的指定设置类型。不应直接分配/删除按钮。 (也许这就是崩溃所处的地方,尽管不应该这样)
class方法将返回一个自动释放的对象,因此你不能释放它。
尽管如此(与其他对象和普通的alloc / init一样),第二种方式是正确的;第一次泄漏。