@interface MyController : NSWindowController <NSWindowDelegate>...- (voID)windowWillClose:(NSNotification *)notification;@end
这是他窗口的代表.一切正常.
但是,为了避免泄漏内存,我应该在实现中执行此 *** 作吗?
@implementation MyController...- (voID)windowWillClose:(NSNotification *)notification { ... [self release];}@end
如果我不这样做,当我用小红色关闭按钮关闭窗口时,会调用windowWillClose :,在Instrument中我看到NSWindow被释放但不是MyController …
这是“这种方式”吗?还是我冒风险?
注意:使用Command-W,窗口和控制器被正确释放,因为我正在AppDelegate中捕获此 *** 作,该实例已经实例化了所有这个窗口&控制器,因此知道如何/何时释放它们.但是小红色关闭按钮执行关闭:它自己和我所取得的最好的是捕获windowWillClose:作为一个窗口委托……
解决方法 如果您希望NSWindowController自行释放,您应该使用:- (voID)windowWillClose:(NSNotification *)notification{ [self autorelease];}
autorelease消息确保在释放NSWindowController之前正确处理close事件.
你也可以查看这个SO entry.
总结以上是内存溢出为你收集整理的objective-c – NSWindowController应该在windowWillClose中释放自己吗?全部内容,希望文章能够帮你解决objective-c – NSWindowController应该在windowWillClose中释放自己吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)