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

解决方案 »

  1.   

    这样也没有错,多此一举,autorelease -1 retain +1 
      

  2.   

    当你alloc之后就需要自己来释放资源调用release
    alloc和autorelease 一起使用时 是把realease的操作交给系统在之后自动调用完成 而不需要再release了[[[[UISwitch alloc] initWithFrame:CGRectMake(206, 9, 0, 0)] autorelease] retain]如果像楼主的这样的调用,就等于保持变量不进行释放,因为系统调用了release后依然没有把计数器减为0在这种情况下仍然需要手动释放这个变量的所以 如果不是全局变量 使用了autorelease后不需要进行retain的操作了
      

  3.   

    楼主看看这篇文章也许会对你有所启发http://www.cnblogs.com/MobileDevelop/archive/2010/07/19/1779755.html
      

  4.   

    你得显示 再 release 
      

  5.   

    alloc 给UISwitch实例分配了内存,autorelease 将此对象放入自动释放池,等价于交由应用程序运行完自动释放掉,不需要在手动release。所以此处retain 多此一举。楼主关心的UISwitch 对象在接下来的程序中还是可以继续使用的。