如何解决Relaese,Alloc和Nil一个对象?
| 这是处理内存的正确方法吗? 方法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,35.0f)] ;
[button release];
button = nil;
解决方法
两者都不正确。您应该使用类方法
buttonWithType
:来构造按钮。它将根据您的指定设置类型。不应该直接分配/启动按钮。 (也许这是崩溃的源头,尽管不应该这样)
该类方法将返回一个自动释放的对象,因此您不能释放它。
尽管如此(第二种方法和其他对象以及普通的alloc / init一样),第二种方法是正确的。第一次泄漏。
, 无需将保存分配的对象的变量设置为nil。如果您不再需要它,请释放它。而已。
, 第一个不正确,并且是内存泄漏的情况。
我们大多数人都在使用第二种方法,因此不应崩溃。
使用方法2发布相关代码。
, 为什么将button = nil;
按钮的值设置为nil,在[button release];
之后,您无需这样做,只需执行[button release];
,按钮就会被释放而不会泄漏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。