2011-07-19 20 views
0

NSNotificationを特定のオブジェクトに(自己に)送信し、他のオブジェクトがそれに応答したり応答したりする必要はありません。NSNotificationのターゲットを制限することはできますか?

これは他のオブジェクトを編集しなくても可能ですか?

+0

この特定の通知に一意の通知名を使用するだけの理由はありますか? (そして、このオブジェクトを観測する唯一のオブジェクトにしてください) –

+0

あります。それに入るのは無意味ですが、本質的にクラスはサブクラス化されており、サブクラスは同じ標準通知名を使って他のオブジェクトからの複数の通知を持つことができます。それ以外の場合は、各サブクラスは標準通知に応答する必要があり、スーパークラスによって送信される独自の固有の通知(スーパークラスは何らかのことを知っていなければなりません。プログラミングが貧弱です。)スーパークラスをインスタンス化する(インスタンス化されたサブクラス)他の人がそれに応答していないという通知。 – David

+0

私は参照してください。特定のサブクラスのインスタンスが複数存在することがあります。 (私が答えを持っているかどうかは分かりませんが、これを読んでいる人のための制約を文書化するだけです) –

答えて

0

本当に同じ通知名を使用する必要がある場合は、selfポインタをuserInfoに入れることを考えてください。次に、オブザーバー側で、自己ポインターが表示されない場合は、特定のオブザーバーに固有のものではなく、一般的な通知であると想定します。

の場合は、自己ポインターを参照してください。自己ポインターを参照すると、それを処理するかどうかを自分で判断できます。私はそれが "編集なし"というあなたの制約を満たしているかどうかはわかりませんが、スーパークラスコードがすべての可能なサブクラスを知る必要がないという要件を少なくとも満たしています。

+0

私はそれを考えましたが、すべてのサブクラスを編集し、そのターゲットポインタをチェックすることを覚えておく必要があります。最適ではありません。 – David

関連する問題