XCode 9.3 日本語化計画: Foundation


文書   >   Foundation   >   Notifications   >   DistributedNotificationCenter


クラス


DistributedNotificationCenter


タスクの境界を越えて通知のブロードキャストを可能にする通知急送メカニズム。





概要


DistributedNotificationCenter インスタンスは、タスクのデフォルトの分散通知センターで通知用の登録をした他のタスクのオブジェクトに NSNotification オブジェクトをブロードキャストします。


主な属性


よく使われるメソッド


default()


デフォルトの分散通知センターにアクセスします。


addObserver(_:selector:name:object:suspensionBehavior:)


通知の配信が一次停止されたときに、指定された動作で通知を受け取るようにオブジェクトを登録します。


postNotificationName(_:object:userInfo:deliverImmediately:)


通知を作成して送信します。


removeObserver(_:name:object:)


オブジェクトが特定の通知を受信したくないことを指定します。


概要


各タスクには、default() クラスメソッドでアクセスするデフォルトの分散通知センターがあります。さまざまな型の分散通知センターが存在する可能性があります。現在、単一の型 (NSLocalNotificationCenterType) が存在します。この型の分散通知センターは、単一のコンピュータ上のタスク間で送信できる通知を処理します。異なるコンピュータ上のタスク間の通信は、分散オブジェクトプログラミングのトピックス を使用してください。


訳注: 分散オブジェクトプログラミングトピックスは、現在見つかりません。

分散通知 を送信するのは高価な操作です。通知は、分散通知用に登録されたオブジェクトを持つすべてのタスクに通知を配布するシステム全体のサーバーに送信されます。通知の送信と通知が別のタスクに到着するまでの待ち時間は制限されません。実際、送信される通知が多すぎるとサーバーのキューがいっぱいになり、通知が破棄されることがあります。


分散通知は、タスクの実行ループを介して配信されます。タスクは、分散通知を受信するために、NSDefaultRunLoopMode などの "共通" モードの 1 つで実行ループを実行していなければなりません。macOS 10.3 以降で動作するマルチスレッドアプリケーションの場合、分散通知は常にメインスレッドに配信されます。OS X v10.2.8 以前で動作するマルチスレッドアプリケーションでは、分散通知 API を最初に使用したスレッド、ほとんどの場合はメインスレッドですが、それに通知が配信されます。


重要:

NSDistributedNotificationCenter は、安全な通信プロトコルを実装していません。分散通知を使用する場合は、通知で渡されたすべてのデータを信頼できないものとして処理する必要があります。安全なコーディングの実践に関する一般的なガイダンスについては、セキュリティの概要 を参照してください。


注意:

NSDistributedNotificationCenter オブジェクトを使用して、同じタスク内のスレッド間で通知を送信しないでください。代わりに 分散オブジェクトプログラミングトピックス または NSObject メソッドの performSelectorOnMainThread:withObject :waitUntilDone: を使用してください。Port オブジェクトを設定して、他のスレッドからメッセージを受信して配布することもできます。


訳注: 分散オブジェクトプログラミングトピックスは、現在見つかりません。

トピックス





分散配布センターの取得





監視者の管理






通知の送信





通知配信の一時停止と再開





定数


関連





以下からの継承


NotificationCenter





以下への準拠





目次
Xcode 10 の新機能

  • 言語:Swift
  • SDK:
  • MacOS 10.0+
  • フレームワーク
  • Foundation
  • 概要
  • トピックス
  • 関連












  • トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)












    トップへ(Swift Foundation)