当前位置:编程学习 > wap >>

autorelease了还要retain吗?看看这句代码

[[[[UISwitch alloc] initWithFrame:CGRectMake(206, 9, 0, 0)] autorelease] retain]
--------------------编程问答-------------------- 这样也没有错,多此一举,autorelease -1 retain +1  --------------------编程问答-------------------- 布置如此吧 --------------------编程问答-------------------- --------------------编程问答-------------------- 当你alloc之后就需要自己来释放资源调用release
alloc和autorelease 一起使用时 是把realease的操作交给系统在之后自动调用完成 而不需要再release了

[[[[UISwitch alloc] initWithFrame:CGRectMake(206, 9, 0, 0)] autorelease] retain]

如果像楼主的这样的调用,就等于保持变量不进行释放,因为系统调用了release后依然没有把计数器减为0

在这种情况下仍然需要手动释放这个变量的

所以 如果不是全局变量 使用了autorelease后不需要进行retain的操作了 --------------------编程问答-------------------- 楼主看看这篇文章也许会对你有所启发

http://www.cnblogs.com/MobileDevelop/archive/2010/07/19/1779755.html --------------------编程问答-------------------- 你得显示 再 release  --------------------编程问答-------------------- alloc 给UISwitch实例分配了内存,autorelease 将此对象放入自动释放池,等价于交由应用程序运行完自动释放掉,不需要在手动release。所以此处retain 多此一举。楼主关心的UISwitch 对象在接下来的程序中还是可以继续使用的。 --------------------编程问答-------------------- 需要release
补充:移动开发 ,  iPhone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,