6

Esta pregunta realmente busca una clase específica que sé que existe, pero no puedo encontrar.¿Ayuda clases/bibliotecas para hacer uso de KVC/KVO en iOS más práctico/seguro?

Hace unas semanas leí un artículo que describe una clase de ayuda para usar KVC: le permite encapsular suscripciones de KVC para que pueda observar varios valores sin tener que pasar por el mismo método de ejecución, y también realiza la limpieza de los observadores de KVC más seguros (ya que la limpieza de KVC es realmente quisquillosa y propensa a la excepción).

Por lo tanto, en las respuestas estoy buscando ya sea la clase de ayudante con la que me había encontrado antes, u otros ejemplos de intentos de ajustar KVC para hacerlo más seguro y más aceptable para uso general.

Respuesta

7

Finalmente encontré lo que estaba buscando, la clave para buscar era buscar ejemplos del uso de KVO con bloques.

Encontré tres recursos interesantes, que presentaré como punto de partida: si alguien tiene otros que sean buenos, por favor también responda.

El primer enlace es el artículo que mencioné antes. Tiene un gran resumen de los problemas con MVA tal como está, y una clase de ayuda interesante que encapsula una sesión KVO:

http://www.mikeash.com/pyblog/key-value-observing-done-right.html

La segunda es una categoría más simple NSObject que le permite pasar de un bloque a ser activado en una notificación de cambio:

http://blog.andymatuschak.org/post/156229939/kvo-blocks-block-callbacks-for-cocoa-observers

La última es otra categoría en NSObject que utiliza un mecanismo vinculante para agregar observación:

http://wirestorm.net/blog/2011/05/27/block-based-observation-with-kvo/

2

Una implementación más actualizada es facebook kvo implementation using block Agregó una categoría NSObject para agregar una propiedad KVOController en todos los objetos. Pero entonces deberíamos tener más cuidado con el problema de retener ciclos.

+1

KVOController es increíble! Prefiero usarlo cuando tengo que implementar KVO. –

Cuestiones relacionadas