class func `default`() -> DistributedNotificationCenter
class func forType (DistributedNotificationCenter.CenterType) -> DistributedNotificationCenter
Availability 有効性
Technology
class DistributedNotificationCenter : NotificationCenter
A Distributed
instance broadcasts NSNotification
objects to objects in other tasks that have registered for the notification with their task’s default distributed notification center.
Distributed
インスタンスは、NSNotification
オブジェクトを他のタスクの中のオブジェクトそれらに対して放送します、それらは、それらのタスクの持つ省略時の分散通知センターを使って、通知に対して登録されます。
Notification dispatch table. See “Class at a Glance” > “Principal Attributes” in Notification
for information about the dispatch table.
Notificationディスパッチテーブル。 “Class at a Glance” > “Principal Attributes” を Notification
において、ディスパッチテーブルについての情報として見てください。
In addition to the notification name and sender, dispatch table entries for distributed notification centers specify when the notification center delivers notifications to its observers. See the post
method, Suspending and Resuming Notification Delivery, and Distributed
for details.
通知名と送り手に加えて、分散通知センターそれぞれに対するディスパッチテーブル登録項目は、通知センターが通知をそれのオブザーバ(監視者)に送付する場合を細かく指定します。post
メソッド、通知配達の待機と再開、そしてDistributed
を詳細として見てください。
default()
Accesses the default distributed notification center. 省略時の分散通知センターにアクセスします。
addObserver(_:selector:name:object:suspensionBehavior:)
Registers an object to receive a notification with a specified behavior when notification delivery is suspended. 通知配達が待機させられる場合に指定される挙動とともに、オブジェクトを登録して通知を受け取るようにします。
postNotificationName(_:object:userInfo:deliverImmediately:)
Creates and posts a notification. 通知を作成して投函します。
removeObserver(_:name:object:)
Specifies that an object no longer wants to receive certain notifications. あるオブジェクトがもはや特定の通知の受け取りを望まないことを指定します。
Each task has a default distributed notification center that you access with the default()
class method. There may be different types of distributed notification centers. Currently there is a single type—NSLocal
. This type of distributed notification center handles notifications that can be sent between tasks on a single computer. For communication between tasks on different computers, use Distributed Objects Programming Topics.
各タスクは、異なる分散通知センターを持ちます、それはあなたがdefault()
クラスメソッドを使ってアクセスします。分散通知センターの異なる型があるかもしれません。現在はただ1つの型 — NSLocal
があります。この型の分散通知センターは、単一のコンピュータ上のタスク間で送られることができる通知を取り扱います。異なるコンピュータ上のタスク間通信については、Distributed Objects Programming Topicsを使ってください。
Posting a distributed notification is an expensive operation. The notification gets sent to a system-wide server that distributes it to all the tasks that have objects registered for distributed notifications. The latency between posting the notification and the notification’s arrival in another task is unbounded. In fact, when too many notifications are posted and the server’s queue fills up, notifications may be dropped. 分散通知を投函することは、高くつく業務です。通知は、いろいろな分散通知に登録されるいろいろなオブジェクトを持つタスク全てにそれを分散する、あるシステムワイドサーバに送られます。通知の投函と、別タスクでの通知到着との間の待ち時間は、限界がありません。実際、多すぎる通知が投函されるそしてサーバーのクエリがいっぱいになる場合、通知はボツにされるかもしれません。
Distributed notifications are delivered via a task’s run loop. A task must be running a run loop in one of the “common” modes, such as NSDefault
, to receive a distributed notification. For multithreaded applications running in macOS 10.3 and later, distributed notifications are always delivered to the main thread. For multithreaded applications running in OS X v10.2.8 and earlier, notifications are delivered to the thread that first used the distributed notifications API, which in most cases is the main thread.
分散通知は、あるタスクの持つ実行ループ経由で配達されます。あるタスクは、分散通知を受け取るために、ある実行ループを “通常” モードの1つ、例えばNSDefault
において実行中でなければなりません。macOS 10.3以降で動作しているマルチスレッドアプリケーションに対して、分散通知は常にメインスレッドに配達されます。OS X v10.2.8以前で動作しているマルチスレッドアプリケーションに対して、通知は、最初に分散通知APIを使ったスレッド、ほとんどの場合メインスレッド、に配達されます。
Important 重要
NSDistributed
does not implement a secure communications protocol. When using distributed notifications, your app should treat any data passed in the notification as untrusted. See Security Overview for general guidance on secure coding practices.
NSDistributed
は、安全な通信プロトコルを実装しません。分散通知を使おうとする場合、あなたのアプリは通知において渡されるあらゆるデータを信用できないものとして扱うべきです。Security Overviewを安全なコーディング習慣での全般的な指針として見てください。
Note 注意
NSDistributed
objects should not be used to send notifications between threads within the same task. Use Distributed Objects Programming Topics or the NSObject
method perform
, instead. You can also setup an Port
object to receive and distribute messages from other threads.
NSDistributed
オブジェクトは、同じタスク内部のスレッド間で通知を送るために使われるべきではありません。代わりにDistributed Objects Programming TopicsまたはNSObject
のメソッドperform
を使ってください。あなたはまた、Port
オブジェクトを準備して、他のスレッドからメッセージを受け取りそして配達できます。
class func `default`() -> DistributedNotificationCenter
class func forType (DistributedNotificationCenter.CenterType) -> DistributedNotificationCenter
func addObserver (Any, selector: Selector, name: NSNotification.Name?, object: String?)
func addObserver (Any, selector: Selector, name: NSNotification.Name?, object: String?, suspensionBehavior : DistributedNotificationCenter.SuspensionBehavior)
func removeObserver (Any, name: NSNotification.Name?, object: String?)
func post(name: NSNotification.Name, object: String?)
func post(name: NSNotification.Name, object: String?, userInfo : [AnyHashable : Any]?)
func postNotificationName (NSNotification.Name, object: String?, userInfo : [AnyHashable : Any]?, deliverImmediately : Bool)
func postNotificationName (NSNotification.Name, object: String?, userInfo : [AnyHashable : Any]?, options: DistributedNotificationCenter.Options)
var suspended: Bool
struct DistributedNotificationCenter.Options
postNotificationName(_:object:userInfo:options:)
method.
これらの定数は、postNotificationName(_:object:userInfo:options:)
メソッドを使って投函される通知の挙動を指定します。
struct DistributedNotificationCenter.CenterType
enum DistributedNotificationCenter.SuspensionBehavior