如果没有做别的什么事情的话,理论上内存是会被释放的,你是不是在xcode里监测内存情况,好像有时候没有那么快释放.如果你中间有其他东西引用了你的tmpvc那就不会被释放了
arc会去检查对象的retain值,如果发现为0就会自动释放,除非你的项目没有开启arc

解决方案 »

  1.   


    现在都是用ARC的。我只是创建了一个测试项目,就是为了测试一下内存是否释放。结果出乎所料,系统并不会如我们所想不用了就会及时释放,而是它自己会考虑什么时候释放合适。很奇怪的行为,这样的话,多交替点击几次allocate和release,很容易最终会触发内存警告。
      

  2.   

    我觉得应该是释放了,你看ViewController的dealloc方法有没有调用
      

  3.   

    请放心使用ARC,release只是把记数-1,但并没有清除内存,通常是在一个runloop后会清除。
      

  4.   


    还真有点不放心啊,我的一个比较大的应用经常就是因为这些莫名其妙的内存为题而被系统杀了。它们的dealloc有的时候调用,有的时候会很迟,甚至没有调用过。不过即使有这些问题,我想我们程序员也做不了什么吧,毕竟ARC是自己掌控内存管理的权限的。