objective-c – NSWindowController应该在windowWillClose中释放自己吗?

objective-c – NSWindowController应该在windowWillClose中释放自己吗?,第1张

概述我有一个NSWindowController的子类,如下所示: @interface MyController : NSWindowController <NSWindowDelegate>...- (void)windowWillClose:(NSNotification *)notification;@end 这是他窗口的代表.一切正常. 但是,为了避免泄漏内存,我应该在实现中执行此 *** 作 我有一个NSWindowController的子类,如下所示:

@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中释放自己吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1001183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存