【问题标题】:Remove NSWindowController删除 NSWindowController
【发布时间】:2013-03-08 15:07:52
【问题描述】:

我有一个无边框窗口,我通过附加到此操作的菜单栏项关闭它(在窗口控制器中):

- (void)closeMenuBar
{
    [[self window] close];
    [[NSApp delegate] closeMenubar];
}

然后,appdelegate 简单地将带有窗口控制器引用的 NSMutableArray 设置为 nil。 (我正在使用ARC)。

但是,在窗口关闭后,窗口控制器似乎仍在运行(从 NSLog 语句可以看出)。我究竟做错了什么?如何在启用 ARC 的情况下立即移除此控制器?

【问题讨论】:

  • 你会发布带有 NSLog 语句的代码吗?

标签: objective-c cocoa automatic-ref-counting nswindow nswindowcontroller


【解决方案1】:

确保您在其他地方没有对它的任何强引用。

如果您无法追踪到它们,请尝试在 Instruments with Allocations 中运行,以了解它被保留在哪里。您可以检查它保留的每个位置的堆栈跟踪。

【讨论】:

  • 我有一个没有删除的通知中心观察者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多