2

nib をロードする NSWindowController が所有するウィンドウ nib があるとします。

NSWindowController には、(Interface Builder を介して) ウィンドウ上の UI コントロールにバインドされた IBOutlet があります。

バインドによってウィンドウ コントローラーとコントロールの間に壊れない循環依存関係が発生するため、ウィンドウ コントローラーを解放して破棄できないというのは本当ですか?

同様の循環依存関係につながる可能性のある一般的な状況を知っていますか?

4

1 に答える 1

2

このような状況では、焦点を絞ったサンプル アプリケーションを作成し、デバッガーで実行を観察することは、物事がどのように機能するかを理解するための優れた方法です。

ファイルの所有者を介してバインドするだけでは、保持サイクルが発生することはありません (10.4 以降)。NSWindowController (および NSViewController) は、この問題を回避するための措置を講じています。

バインディングが保持サイクルを引き起こしている状況に遭遇した場合、それらを回避するための戦略があります。(具体的なアドバイスを行うには、特定のセットアップの詳細が必要になる可能性があります。)

于 2009-07-16T03:08:52.200 に答える