文書   >   Foundation   >   Notifications   >   Notification   >   NSNotification
クラス
NSNotification
Notification にブリッジする登録された監視者にブロードキャストされる情報を含むオブジェクト。参照する意味やその他の Foundation 特有の動作が必要な場合は、NSNotification を使用して下さい。
概観
通知には、名前、オブジェクト、および optional の辞書が含まれ、NotificationCenter または DistributedNotificationCenter のインスタンスによってブロードキャストされます。名前は、通知を識別するタグです。オブジェクトは、通知のポスターがその通知の監視者に送信したい任意のオブジェクト (通常、通知をポストするオブジェクト) です。辞書には、他の関連するオブジェクトがあればそれも格納されます。NSNotification オブジェクトは不変です。
通常独自の通知を直接作成するのではなく、NotificationCenter メソッドの post(name:object:) および post(name:object:userInfo:) を呼び出して下さい。
Foundation フレームワークへの Swift のオーバーレイは、NSNotification クラスにブリッジする Notification 構造体を提供します。値の型の詳細については、Cocoa と Objective-C での Swift の使用 (Swift 4.1) の Cocoa フレームワークでの作業 を参照してください。
オブジェクトの比較
通知 (notification) のオブジェクトは、ローカル通知のためのポインタの等価性を使用して比較されます。分散通知は文字列をオブジェクトとして使用し、isEqual(_:) を使用してそれらの文字列を比較します。これは、ポインターの等価性がプロセスの境界を超えては意味をなさないためです。
サブクラスの作成
NSNotification をサブクラス化して、通知名、オブジェクト、および辞書に加えて情報を含めることができます。この追加のデータは、通知者と監視者の間で合意されなければなりません。
NotificationCenter は、インスタンス変数を持たないクラスクラスタです。そのため、NSNotification をサブクラス化し、原始的メソッドの name、object、および userInfo をオーバーライドしなければなりません。好きな指定イニシャライザを選択することができますが、イニシャライザが init() をsuper 上で呼び出していない事を確認して下さい (NSNotification は直接インスタンス化するつもりではなく、その init メソッドが例外を発生させます)。
トピックス
通知の作成
unarchiver(アンアーカイバ) からのデータを使用して通知を初期化します。
init(name: NSNotification.Name, object: Any?)
指定された名前とオブジェクトを持つ新しい通知オブジェクトを返します。
init(name: NSNotification.Name, object: Any?, userInfo: [AnyHashable : Any]? = nil)
指定された名前、オブジェクト、およびユーザー情報で通知を初期化します。
通知の名前に使用される型。
通知情報の取得
通知の名前。
通知に関連したオブジェクト。
var userInfo: [AnyHashable : Any]?
通知に関連したユーザー情報辞書。
関連
以下からの継承
以下に準拠
- NSCoding
- NSCopying