0

初心者向け警告 - 複数のファイルにまたがる複数のメソッドから、表示された情報を更新するメソッドを作成しようとしています。私は Obj-C を初めて使用しますが、C ではこれは簡単です。関数呼び出しを使用します。

シングルトン デザイン パターンが解決策のようです。表示された情報を更新するシングルトンを作成し、シングルトン メソッドを「グローバルに」使用可能にして、IBOutlet 変数を更新します。1 つの表示オブジェクトがあり、システム内の任意のメソッドから操作できます。

これはうまくいかないようです。シングルトンが IBOutlet 変数をどのように処理するかについての私の誤解が原因であると思われます。IB で作成された接続は、シングルトンでは機能しないのでしょうか?

これは確かに一般的な問題であるに違いありません - 複数のオブジェクトからユーザー インターフェイスにアクセスしていますか? この問題に対するエレガントな解決策は何ですか?

4

1 に答える 1

0

IB はシングルトンを扱いません。ただし、いくつかのオプションがあります。

接続 IBAction メソッドに対して、シングルトンのメソッドを呼び出すことができます。

または同様: その IBAction メソッドでは、NSNotificationCenter を介して通知をブロードキャストできます。

変更が発生したことをさまざまなクラスから UI に通知するには、ビュー コントローラーのプロトコルを作成し、これに準拠するデリゲートを作成します。

ココアが依存するMVC パターンに固執してください。そうしないと、フレームワークを使用する代わりに、フレームワークと戦うことになります。

于 2012-05-01T10:09:11.430 に答える