func addObserver (Any, selector: Selector, name: NSNotification.Name?, object: Any?)
func removeObserver (Any, name: NSNotification.Name?, object: Any?)
func removeObserver (Any)
Availability 有効性
Technology
func addObserver(forName name: NSNotification
.Name
?,
object obj: Any?,
queue: OperationQueue
?,
using block: @escaping (Notification
) -> Void
) -> NSObjectProtocol
name
The name of the notification to register for delivery to the observer block. Specify a notification name to deliver only entries with this notification name. オブザーバブロックに配達するために登録することになる通知の名前。ある通知名を指定して、この通知名をもつ登録項目のみを配達するようにしてください。
When nil
, the sender doesn’t use notification names as criteria for delivery.
nil
の場合、送信者は通知名を配達のための基準として使いません。
obj
The object that sends notifications to the observer block. Specify a sender to deliver only notifications from this sender. 通知それらをオブザーバブロックに送信するオブジェクト。ある送信者を指定して、この送信者からの通知のみを配達するようにしてください。
When nil
, the notification center doesn’t use the sender as criteria for the delivery.
nil
の場合、通知センターは送信者を配達の基準として使いません。
queue
The operation queue where the block
runs.
オペレーションキュー、そこでblock
が動作します。
When nil
, the block runs synchronously on the posting thread.
nil
の場合、ブロックは投函しているスレッド上で同期的に動作します。
block
The block that executes when receiving a notification. ある通知を受け取る時に遂行するブロック。
The notification center copies the block. The notification center strongly holds the copied block until you remove the observer registration. 通知センターはブロックをコピーします。通知センターは、コピーされたブロックを、あなたがオブザーバ登録を除去するまで強固に保持します。
The block takes one argument: the notification. ブロックは1つの引数:通知をとります。
An opaque object to act as the observer. Notification center strongly holds this return value until you remove the observer registration. オブザーバとしての役割を果たすことになる不透明オブジェクト。通知センターは、この戻れ値を、あなたがオブザーバ登録を除去するまで強固に保持します。
If a notification triggers more than one observer block, the blocks can all execute concurrently (but on their queue or on the current thread). 通知が1つのオブザーバブロックより多く引き起こすならば、ブロックそれらは全て同時に遂行できます(しかしそれらのキュー上でまたは現在のスレッド上で)。
The following example shows how you can register to receive locale change notifications. 以下の例は、どのようにあなたがロケール変更通知を受け取るために登録できるかを示します。
Tip 助言
To avoid a retain cycle, use a weak reference to self
inside the block when self
contains the observer as a strong reference.
保持循環を防ぐために、self
に対して弱い参照をブロック内では使ってください、self
がオブザーバを強い参照として含む場合には。
Unregister an observer to stop receiving notifications. To unregister an observer, use remove
or remove
with the most specific detail possible. For example, if you used a name and object to register the observer, use the name and object to remove it.
オブザーバを登録解除することで、通知の受け取りを停止してください。あるオブザーバを登録解除するには、remove
またはremove
をできるだけ多くの具体的な詳細で使ってください。例えば、あなたがオブザーバを登録するのに名前とオブジェクトを使ったならば、名前とオブジェクトを使ってそれを除去してください。
You must invoke remove
or remove
before the system deallocates any object that add
specifies.
あなたは、remove
またはremove
を発動しなければなりません、add
が指定する何らかのオブジェクトをシステムがデアロケートする前に。
Another common practice is to create a one-time notification by removing the observer from within the observation block, as in the following example. 別の通常の方法は、ワンタイム通知を、オブザーバを監視ブロック内部から取り除くことによって作成することになります、以下の例でのように。
func addObserver (Any, selector: Selector, name: NSNotification.Name?, object: Any?)
func removeObserver (Any, name: NSNotification.Name?, object: Any?)
func removeObserver (Any)