Comprensión de KVO en iOS

Con respecto a "Garantizar el cumplimiento de KVO", hay una definición oficial que parece difícil de entender

Para ser considerado como compatible con KVO para una propiedad específica, una class debe garantizar lo siguiente;

  1. La class debe cumplir con la encoding de valor key para la propiedad tal como se especifica en Garantizar el cumplimiento de KVC.

  2. La class debe permitir notifications automáticas de observadores para la propiedad, o implementar observación manual de valores key para la propiedad.

¿Quién puede dar ejemplos más específicos para que esto sea más claro? Gracias

Consulte la sección Aseguramiento de la compatibilidad con KVO de la sección de Asistencia automática frente a manual de la Guía de progtwigción de observación de valores key. El cumplimiento se logra esencialmente siguiendo las convenciones de nomenclatura para methods y / o Ivars.

En mi experiencia, KVO tiende a "simplemente trabajar", lo que es bueno.

Cuando usa tags @property para crear getters / setters, la magia está auto cableada para las relaciones de To-One y solo necesita agregarObserver … e implementar el método observe … para capturar las actualizaciones.

El verdadero desafío es comprender cómo implementas el cumplimiento de los valores key de To-Many para hacer que un set mutable o array funcione. La documentation aquí es key y el entendimiento de que hay dos secciones … Colecciones indexadas y collections no orderadas. Realmente me ayudó a entender que si mi @property es un NSMutableArray necesitas mirar los methods en el área Indexada y si tu @property es un NSMutableSet, necesitas mirar la documentation Desorderada.

Existen methods necesarios que necesita implementar, incluso si no planea usarlos.