Instance Method インスタンスメソッド

removeObserver(_:name:object:)

Removes matching entries from the notification center's dispatch table. 合致する登録項目を通知センターの持つディスパッチテーブルから除去します。

Declaration 宣言

func removeObserver(_ observer: Any, 
               name aName: NSNotification.Name?, 
             object anObject: Any?)

Parameters パラメータ

observer

The observer to remove from the dispatch table. Specify an observer to remove only entries for this observer. ディスパッチテーブルから取り除くオブザーバ。このオブザーバに対する登録項目のみ除去するオブザーバを指定してください。

aName

The name of the notification to remove from the dispatch table. Specify a notification name to remove only entries with this notification name. When nil, the receiver does not use notification names as criteria for removal. ディスパッチテーブルから取り除くことになる通知の名前。通知の名前を指定して、この通知名をもつ登録項目のみを除去してください。nilの場合、レシーバは通知名を削除の基準として使いません。

anObject

The sender to remove from the dispatch table. Specify a notification sender to remove only entries with this sender. When nil, the receiver does not use a sender as criteria for removal. ディスパッチテーブルから除去する送り手。通知の送り手を指定してください、この送り手をもつ登録項目のみ除去します。nilの場合、レシーバは送り手を削除の基準として使いません。

Discussion 議論

Removing the observer stops it from receiving notifications. オブザーバを除去することは、それが通知を受信するのを止めます。

If you used addObserver(forName:object:queue:using:) to create your observer, you should call this method or removeObserver(_:) before the system deallocates any object that addObserver(forName:object:queue:using:) specifies. あなたがaddObserver(forName:object:queue:using:)をあなたのオブザーバを作成するのに使用したならば、あなたはこのメソッドまたはremoveObserver(_:)を呼び出さなければなりません、addObserver(forName:object:queue:using:)が指定する何らかのオブジェクトをシステムがデアロケートする前に。

If your app targets iOS 9.0 and later or macOS 10.11 and later, and you used addObserver(_:selector:name:object:) to create your observer, you do not need to unregister the observer. If you forget or are unable to remove the observer, the system cleans up the next time it would have posted to it. あなたのアプリがiOS 9.0以降またはmacOS 10.11以降を目標とするならば、そしてあなたのオブザーバを作成するためにあなたがaddObserver(_:selector:name:object:)を使ったならば、あなたはオブザーバを登録解除する必要はありません。あなたがオブザーバの除去を忘れるまたはそれができないならば、システムは、次にそれがそれに投函する時に片付けます。

When unregistering an observer, use the most specific detail possible. For example, if you used a name and object to register the observer, use removeObserver(_:name:object:) with the name and object. オブザーバを登録解除する時、できるだけ多くの具体的な詳細を使ってください。例えば、あなたがオブザーバを登録するのに名前とオブジェクトを使ったならば、removeObserver(_:name:object:)を名前とオブジェクトで使ってください。

See Also 参照

Adding and Removing Notification Observers 通知を追加および除去する