From the KVO guide (emphasis mine): The key-value observing addObserver:forKeyPath:options:context: method does not maintain strong references to the observing object, the observed objects, or the context. You should ensure that you maintain strong references to the observing, and observed, objects, and the context as necessary.
Cocoa Bindings manage the strong references during bind: and unbind:.
To answer your question "How can i unregister the observer, when the observing object gets dealloced?": You don't unregister the observer, because the observer should maintain a strong reference to the observed object. Thus the observed object doesn't get deallocated.
Another way to think of this, you are observing properties, but not the observed object itself. So you only care when properties are set to nil. Because you are maintaining a strong reference as an observer, the observed object will not be deallocated until the observing object is done observing it.
So if the observed object was removed as a property you are observing of another object, that would cause you to stop observing it (releasing the strong reference) and then allow the observed object to be deallocated. That property you are observing may be a collection of objects, so you would observe the object being removed, causing you to stop observing and allowing the object to dealloc.
Mac Observer Deals
Self-driving cars: from 2020 you will become a. - The Guardian
Timing of Voice Breaking in Males Associated with Growth and