为什么NSOpenPanel/NSSavePanel显示内存泄漏?

Dav*_*vid 2 cocoa objective-c nssavepanel nsopenpanel xcode4

不知道为什么,但制作一个简单[[NSOpenPanel openPanel] runModal];的内存泄漏 - 见于Leaks Instrument.

似乎关闭.

它是一个自动释放的对象,不应该在ARpool耗尽后自动释放吗?

有没有办法来解决这个问题?

Rob*_*ger 6

NSOpenPanel是一个单例,这意味着每次使用它时总是会得到相同的对象实例.这意味着第一次调用时[NSOpenPanel openPanel],NSOpenPanel会创建一个实例而不会释放.

这不是泄漏,而是优化.但是,有时Leaks仪器会选择这样一次只有泄漏的实例,因为实例(按设计)从未发布过.

NSOpenPanel 是一个广泛使用和测试的类,其标准实现中的任何泄漏都不太可能存在.