ドキュメントhttp://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.htmlには、送信者と通知名が記載されていますが、誰に投稿するかについてはどこに記載されていますかへの通知?
質問する
2269 次
2 に答える
4
誰かに直接通知を投稿することはありません。通知の名前と送信者によって、誰が通知を受け取るかが決まります。
関心のあるオブジェクトは、通知を購読できます。通知を投稿すると、その名前の通知を聞いているすべてのサブスクライバーに通知が届きます。実際、Cocoa 通知は 2 つのレベルで微調整できます。
- 通知名 (文字列)
- 差出人
クラスのドキュメントはこれを明確に示しています。
作成時に使用された通知名と送信者に応じて、誰が通知を受けるかを示すドキュメントの小さな ASCII テーブルを次に示します。
通知名 | 通知送信者 | 指定された通知セット -------------------------------------------------- ------------------ 指定 | 指定 | 特定の送信者からの特定の名前の通知。 指定 | 未指定 | 任意の送信者による特定の名前の通知。 未指定 | 指定 | 特定の送信者によって投稿された通知。 未指定 | 未指定 | すべての通知。
未指定は、そのフィールドに nil 値が指定されたことを意味します。
通知は、オブジェクトが実装で結び付けられておらず、互いに独立して動作できるため、疎結合の設計を可能にします。
于 2011-02-11T04:08:19.940 に答える
1
notification
ブロードキャストメカニズムです。ドキュメントのように、「オブジェクトは通知センターに登録され、addObserver:selector:name:object:またはaddObserverForName:object:queue:usingBlock:メソッドを使用して通知(NSNotificationオブジェクト)を受信します。」つまり、関心のあるオブジェクトはすべてリスナーとして登録できます。
于 2011-02-11T04:03:57.803 に答える