0

このアクションにアタッチされたメニューバー項目を介して閉じるボーダレス ウィンドウがあります (ウィンドウ コントローラー内):

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

その後、appdelegate は、ウィンドウ コントローラの参照を含む NSMutableArray を nil に設定するだけです。(私はARCを使用しています)。

ただし、ウィンドウが閉じられた後も、ウィンドウ コントローラーは実行されているように見えます (NSLog ステートメントで明らかなように)。私は何を間違っていますか?ARC が有効な状態でこのコントローラーをすぐに削除するにはどうすればよいですか?

4

1 に答える 1

0

他の場所でそれを強く参照していないことを確認してください。

それらを追跡できない場合は、Instruments with Allocations で実行して、保持されている場所を把握してみてください。保持されている各場所のスタック トレースを調べることができます。

于 2013-03-12T00:56:41.253 に答える