我希望能够在 Cocoa 应用程序中创建多个窗口实例。因此,我创建了一个 NSWindowController 和关联的 XIB。在我的应用程序委托中,我有以下代码:
- (IBAction)newWindow:(id)sender
{
MyWindowController *wc = [[MyWindowController alloc]
initWithWindowNibName:@"MyWindow"];
[self.windowControllers addObject:wc];
[wc showWindow:self];
}
我必须在某处保留一个指向窗口控制器的指针,因为否则 ARC 会释放它。我发现一个常见的解决方案是将其添加到可变数组中。但是,如果窗口稍后关闭,则引用仍将在数组中,因此不会被释放。
关闭窗口时从数组中删除窗口控制器的最佳方法是什么?