Doug - there is really not enough information in your description to know what you are doing, and how best (or if at all) apply KVO to this problem.
KVO is all about objects to monitor objects. Usually, it doesn’t matter to you when they are created or destroyed, unless you must stop observing them before they are destroyed.
Instead, you should start and stop observing objects when these objects become of interest to you. Consider a graphic drawing package in which a document has an ordered array of shapes, and you are interested in observing the backgroundColor property of each shape.
We will not try to observe the instance and the release of the Shape instance, but instead we observe the “shape” property in the document. Through this observer, we can determine when the form is added or removed from the document. When the form is added to the document, we begin to observe it. When it is removed from the document, we stop observing it. (Note that it can be removed from the document, but not freed if it is on the cancel stack, etc.)
In the object graph for your model, in order to use KVO, you will want to add and remove objects from the object graph using the KVO-compatible method so that you can observe mutations in the relationship and in this observer start and stop the property of observers for related objects.
source share