1

アプリ全体でユーザー設定を処理するSettingsManagerシングルトンがあります (たとえば、任意のビュー コントローラーでサウンドが再生されるたびに、SettingsManagerサウンドがオンになっているかどうか、およびその音量がチェックされます)。

そのクラス オブジェクト (私は でアクセスします[SettingsManager sharedManager]) は、別の場所に送信されたデリゲート メッセージに応答できますか? たとえば、 でサウンドをオンに切り替えた場合SettingsViewController、クラス メソッド オブジェクトはそれを取得して変更をディスクに保存できますか?

4

1 に答える 1

2

インスタンス化されたシングルトンは、もちろんデリゲートとして機能できます。最終的には、他のオブジェクトと同様にオブジェクトでもあります。唯一の違いは、一度だけインスタンス化されることです。

ただし、クラス メソッドを介してのみアクセスし、プロパティ、ivar などにデータを保存しない場合、インスタンス化されない可能性があります。その場合、それが真のシングルトンかどうかはわかりませんが、実際にインスタンス化されることはありませんが、シングルトンと呼んでいる人を見てきました。その場合、クラス メソッド内では、self常にインスタンスではなくクラスを参照します。また、クラスはデリゲートとして機能できません。

したがって、シングルトンがどのように見えるかに応じて、答えはイエスまたはノーです。

于 2013-03-11T13:55:19.110 に答える