Valor key Observe removeObserver cuando el object observado se desasigna

Hay varias preguntas relacionadas con este tema, pero ninguna responde a mi pregunta.

Quiero removeObserver de un object cuando ese object se desasigna. Estoy usando KVO ya que se deben observar varios elementos, y NSNotification tiene una sobrecarga enorme en ese caso.

Aquí está el escenario:

(Múltiples) objects están siendo observados por varios otros objects. Cuando el observer se desasigna, puedo eliminarlo como observador. Pero cuando los observed se desasignan, necesito decirles a todos los observers que se eliminen a sí mismos como observadores. ¿Como hacer esto?

Sailesh si el object (observado) se desasigna, entonces ese object no puede ser alterado o su valor no puede cambiarse, así que si sus observadores están observando un object desasignado y ese object desasignado nunca va a enviar ningún tipo de notificación de observación, entonces ¿Existe? ¿Es divertido remover los observadores?
~~~~~~~~~~~~~~~~~~~~~ Editado ~~~~~~~~~~~~~~~~~~~~~~~~
Oye, tengo algo de aquí . La idea es que observe una propiedad adicional que diga alive y escriba en desasociado de observado como alive = NO; y como esta propiedad se cambia, todo el observador recibirá una notificación y, por lo tanto, puede eliminar a todo el observador.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Creo que hay un problema de layout aquí. El object observado no debería tener que preocuparse por sus observadores. Dice que desea eliminar los observadores del método dealloc de objects observados. ¿Pero por qué se desasigna? Si todavía se observa que hay una propiedad en algún lugar, entonces el object no será desalojado. Un buen layout no deja ningún observador en el momento en que se invoca a dealloc.

Imagine una vista que se registre como un observador en un object model. Este model de object se conserva en la vista o en el controller. El object model no llamará a su descomplotación, siempre que esté retenida en alguna parte. Solo cuando se lance la última propiedad, debe llamar a dealloc. Entonces, diga que se liberan todas las properties, excepto para el view / viewcontroller y que queda un observador (la vista). Ahora, antes de que la vista / viewcontroller lance su propiedad sobre el object model, también debería eliminar la vista como un observador. Entonces, para cuando se llama al método dealloc, no debe quedar ningún observador.

puede publicar por separado una notificación de -(void)dealloc cuando se observa se desasigna. Al recibir todos los demás observadores, se eliminará la notificación requerida.