ARC下的iOS 5和6免费malloc内存

Mar*_*ger 0 memory malloc objective-c ios automatic-ref-counting

如何在ARC下的Objective-C中释放动态分配的内存?

通过dynamically我的意思是内存分配与malloc一些伊娃.

dealloc并且viewDidUnload不再被召唤,至少我的测试.

那么什么时候不再需要视图控制器何时以及如何开始释放内存?

我所做的是创建Releasable一个名为(我从C#偷走的想法)的协议,它有单一的方法-(void) release.当不再需要对象时,某些外部代理将调用此方法.

rma*_*ddy 7

dealloc仍然在ARC下调用.你只是没有明确地打电话[super dealloc].如果dealloc没有被调用那么某些东西仍然有对象实例的引用.在您的项目上运行分析器,看看会出现什么.

viewDidUnload 仍在iOS 5下调用,但不在iOS 6下调用.

添加协议和release方法是完全没必要的.

  • @MartinBerger如果你的`dealloc`例程没有被调用,那么你可能有保留周期(强引用周期),例如当你没有'无效'重复的'NSTimer`或者如果呈现控制器保留时你可以获得(即保持对所提出的控制器的强烈参考.但是`dealloc`绝对是你清理的好地方.你只需要找出为什么它没有被调用(如果不是). (2认同)