我正在为Cocoa编写一些测试代码。已将AppController对象放在IB中。在AppController中声明并初始化NSMutableArray
。一切运行正常,因为用户可以输入数组,其内容显示在NSTableView
等。
然后我将一个- (void) dealloc {}
方法添加到AppController。我的问题是:当按下“红色任务”按钮终止程序时,为什么根本没有被调用?只是我希望在程序结束之前显式释放与数组相关的内存。我需要明确释放数组吗? (没有垃圾收集)
答案 0 :(得分:3)
当程序终止时,内存不会被释放,因为与进程关联的所有内存都会在它终止时自动批量释放。如果您需要在终止时执行非内存相关的清理,请使用NSApp的委托方法-applicationWillTerminate:
答案 1 :(得分:2)
当程序结束执行时,它不再需要占用任何内存空间。操作系统将自动销毁与程序相关的进程,并回收它在其生命周期中占用的内存。因此,无论是否在程序终止时明确解除分配都无关紧要。