我有一个用ARC编写的Cocoa应用程序,允许用户创建和打开新窗口。 (这就像一个文档模型,但我没有使用nsdocument)Mac可可:无法释放窗口来获取其内存
每个新窗口都需要大量的内存,如果用户关闭窗口,我想返回。
据我所知,[window close]
只是隐藏窗口,但我也使用,但NSwindowcontroller
及其窗口在结束后仍然存在。
在我窗口的XIB文件中的对象包含了一些使用malloc分配的大C数组的,所以我也试着通过发送调用windowcontroller的windowWillClose:
方法中的通知中心,该通知调用的方法中解放出来在窗口关闭之前在相关对象内部释放C数组。同样,这是没有任何效果的,即使试图释放数组的方法被调用并且数组显然已被释放,但根据Activity Monitor的说法,并没有释放内存。我也尝试释放-(void) dealloc
中的数组,但这似乎不会被要求关闭。
那么,当一个窗口关闭时,怎样才能最好地获取内存?
编辑:据对this stackoverflow page由伯努瓦评论,
“发布关闭时,然而,由窗口控制器所有的窗户被忽略。”
这是真的吗?如果是这样,我怎么能在ARC中解决这个问题?
谢谢,但我不确定我的2009年macbook足够强大,足以运行仪器。我有它的口吃,并发送笔记本电脑风扇进入超速大约10分钟监测一个窗口,这通常需要约5秒仪器不运行的开放。 –
@ ChristianJ.B .:恩,这很有趣。从2005年我的Mac可以运行得很好...... –
如果有任何帮助,我正在运行Instruments-> leaks。 –