<!--
{
  "availability" : [
    "iOS: 2.0.0 -",
    "iPadOS: 2.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.0.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/NotificationCenter/removeObserver(_:name:object:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "c:objc(cs)NSNotificationCenter(im)removeObserver:name:object:"
  },
  "title" : "removeObserver(_:name:object:)"
}
-->

# removeObserver(_:name:object:)

Removes matching entries from the notification center’s dispatch table.

```
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.

`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.

## Discussion

Removing the observer stops it from receiving notifications.

If you used [`addObserver(forName:object:queue:using:)`](/documentation/Foundation/NotificationCenter/addObserver(forName:object:queue:using:)) to create your observer, you should call this method or `NotificationCenter/removeObserver(_:)` before the system deallocates any object that [`addObserver(forName:object:queue:using:)`](/documentation/Foundation/NotificationCenter/addObserver(forName:object:queue:using:)) specifies.

If your app targets iOS 9.0 and later or macOS 10.11 and later, and you used [`addObserver(_:selector:name:object:)`](/documentation/Foundation/NotificationCenter/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.

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:)`](/documentation/Foundation/NotificationCenter/removeObserver(_:name:object:)) with the name and object.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)