observeValue(forKeyPath:of:change:context:)
Informs the observing object when the value at the specified key path relative to the observed object has changed.
Declaration
func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?)Parameters
- keyPath:
The key path, relative to
object, to the value that has changed. - object:
The source object of the key path
keyPath. - change:
A dictionary that describes the changes that have been made to the value of the property at the key path
keyPathrelative toobject. Entries are described inChange Dictionary Keys. - context:
The value that was provided when the observer was registered to receive key-value observation notifications.
Discussion
For an object to begin sending change notification messages for the value at keyPath, you send it an addObserver(_:forKeyPath:options:context:) message, naming the observing object that should receive the messages. When you are done observing, and in particular before the observing object is deallocated, you send the observed object a removeObserver(_:forKeyPath:) or removeObserver(_:forKeyPath:context:) message to unregister the observer, and stop sending change notification messages.