---
title: "removeObserver(_:forKeyPath:)"
framework: foundation
role: symbol
role_heading: Instance Method
path: "foundation/nsarray/removeobserver(_:forkeypath:)"
---

# removeObserver(_:forKeyPath:)

Raises an exception.

## Declaration

```swift
func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
```

## Parameters

- `observer`: The object to remove as an observer.
- `keyPath`: A key-path, relative to the array, for which observer is registered to receive KVO change notifications. This value must not be nil.

## Discussion

Discussion NSArray objects are not observable, so this method raises an exception when invoked on an NSArray object. Instead of observing an array, observe the to-many relationship for which the array is the collection of related objects.

## See Also

### Key-Value Observing

- [addObserver(_:forKeyPath:options:context:)](foundation/nsarray/addobserver(_:forkeypath:options:context:).md)
- [removeObserver(_:forKeyPath:context:)](foundation/nsarray/removeobserver(_:forkeypath:context:).md)
- [removeObserver(_:fromObjectsAt:forKeyPath:context:)](foundation/nsarray/removeobserver(_:fromobjectsat:forkeypath:context:).md)
- [addObserver(_:toObjectsAt:forKeyPath:options:context:)](foundation/nsarray/addobserver(_:toobjectsat:forkeypath:options:context:).md)
- [removeObserver(_:fromObjectsAt:forKeyPath:)](foundation/nsarray/removeobserver(_:fromobjectsat:forkeypath:).md)
