如何在ARC下的Objective-C中释放动态分配的内存?
按dynamically
我的意思是用malloc
分配给某些ivar的内存。
dealloc
和viewDidUnload
不再被调用。
那么何时以及如何开始释放内存时不再需要视图控制器?
我所做的是创建名为Releasable
的协议(我从C#中窃取的一个想法),它具有单一方法-(void) release
。
当不再需要对象时,这将由一些外部代理调用。
答案 0 :(得分:7)
dealloc
。您只是没有明确调用[super dealloc]
。如果未调用dealloc
,则某些内容仍然具有对象实例的引用。在项目中运行分析器,看看会出现什么。
viewDidUnload
仍会在iOS 5下调用,但不会在iOS 6下调用。
完全不需要添加协议和release
方法。