1

NSObject AppController:NSObject があるとします。IB を使用して、NSObject コントロールを MainMenu.xib にドラッグし、クラスを AppController にポイントします。MainMenu.xib は一度読み込まれ、MainMenu.xib 内のオブジェクトはアプリの存続期間中メモリ内にあるため、AppController オブジェクトはシングルトンになりますか?

次に、IBOutlet を AppDelegate にドラッグして、このシングルトン オブジェクトにアクセスします。これは簡単な方法のように見えます。これは良い習慣ですか、それとも落胆すべきですか?

私が想定していた標準的な方法は、静的な AppController *sharedInstance をクラス内に追加し、アクセスに +(AppController *)sharedAppController を使用することです。

4

1 に答える 1

1

いいえ、シングルトンではありません。コード内で同じクラスの別のインスタンスを作成することを妨げるものは何もないからです。

これは、単一のインスタンスを作成するための便利な方法です。

MainMenu.xib 内のオブジェクトは、アプリの存続期間中メモリ内にあります。

本当じゃない。誰もこれらのオブジェクトを保持していない (または GC でそれらへの強い参照を保持していない) 場合、それらは割り当て解除されます。これは本当です。以下の Peter Hosey のコメントを参照してください。

于 2011-09-28T19:18:19.713 に答える