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