0

ユーザーのクリックで選択できるオブジェクトがあります。アプリの現在の要件では、いつでも、アプリの実行中の任意の時点でこれらの項目が 1 つしか選択されません。

次のように、これを強制するメカニズムを実装しました。

  • これらの各オブジェクトには、プロパティとして一意の識別子があります。
  • 各オブジェクトが作成されると、通知のNSNotificationCenterリッスンにサブスクライブします。MY_OBJECT_SELECTED
  • 各オブジェクトが選択されると、一意の ID をディクショナリMY_OBJECT_SELECTEDの一部として通知が送信されます。userInfo
  • 次に、各オブジェクトが通知を受け取ると、その ID が userInfo の ID と同じかどうかを確認します。そうである場合は何もしませんが、そうでない場合はそれ自体を未選択に設定します。

これは問題に対するまともなアプローチですか?そうでない場合、どのようにしますか?

4

2 に答える 2

0

オブジェクトがアプリ全体に分散している場合、つまり、さまざまなクラスのメンバーである場合。同じタイプのグローバル オブジェクトを作成し、それをタッチされたオブジェクトのみに割り当てることができます。手順では次のようになります。

  • オブジェクト型のグローバル変数を持つ。
  • 任意のオブジェクト タッチで、globalObject = currentObject; を割り当てます。
  • メソッドの呼び出しやオブジェクトメンバーの変更など、アプリ全体で globalObject に対するすべての操作を実行します (安全性を確保するために nil をチェックしてください)。
  • 新しいタッチで別のオブジェクトに再割り当てします。
于 2013-05-02T11:23:57.723 に答える