1

ドキュメントhttp://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.htmlには、送信者と通知名が記載されていますが、誰に投稿するかについてはどこに記載されていますかへの通知?

4

2 に答える 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 に答える