The truth is, in practice it is very important to always use the context to differentiate between observed objects and not rely on the key path. We are working with an object-oriented language and we should always accommodate for the case where a class might be subclassed or a super class expecting a behavior that your own class will prevent.
Or even worse, would you ever consider handling a signal for a memory error due to calling
freeon a freed piece of memory because you couldn’t remember whether you previously retained this object and decided to release it anyway.
No. Because this is madness.
Update (2013-10-30): Damien DeVille has more on
I hope this helped you understand how the key dependency KVO mechanism works. As I said in the previous post, KVO has very simple rules and is very powerful, as long as you follow the rules.
Stay up-to-date by subscribing to the Comments RSS Feed for this post.