2011-01-16 9 views
32

Cocoa para Mac OS X admite la tecnología de enlace de cacao, lo que reduce la necesidad de código de pegamento entre sus vistas y sus modelos.¿Existe alguna razón técnica/conceptual por la que iOS no admita Cocoa Bindings?

Recrear enlaces de cacao en la parte superior de KVC en KVO parece factible con la ayuda del código fuente de cocotron.

¿Hay algún motivo técnico o conceptual por el cual las uniones de cacao no forman parte del SDK? Estoy pensando en el rendimiento, la falta de recolección de basura, la falta de soporte de KVC de los elementos de la UI (UISlider, por ejemplo).

+2

Las consolidaciones de cacao existían mucho antes de la recolección de basura, por lo que puede descartarlo. –

+4

He creado un mecanismo simple (es decir, sin transformadores de valor) como enlaces: vea NSObject + SimpleBindings en https://github.com/mruegenberg/objc-utils/tree/master/CoreFoundationAdditions No hay compatibilidad con el generador de interfaz en este momento, pero ayuda a simplificar el código. – mrueg

Respuesta

7

enlaces en el escritorio requiere:

  1. Todos los componentes de interfaz de usuario adecuados para exponer fijaciones por sus propiedades importantes
  2. Implementación de NSArrayController infraestructura para el manejo de la selección

En iOS, el punto 2 se vuelve menos de un problema. Es raro (y tal vez incluso un mal diseño de UI) tener un diseño de vista maestra de detalles donde sea posible una selección múltiple. Aquí es donde realmente entra en juego el NSArrayController.

Enlaces para un UITableView ser menos práctico que el diseño actual NSArrayController no se extienden a múltiples secciones, títulos, etc.

Punto 1 sería útil tener. Sin embargo, requiere una gran cantidad de trabajo por parte de Apple para implementar el soporte de enlaces en todos los controles de UIKit. Supongo que nunca se ha convertido en una prioridad lo suficientemente alta como para que lo implementen.

+0

Mike, gracias por su respuesta. –

+2

Tarde para esta fiesta, pero no olvide NSTreeController. Aunque es posible que desees que puedas (ba-dum tish). En realidad lo arreglaron. Pero podría haber manejado las secciones de la vista de tabla, creo. Además, la selección múltiple se simula actualmente en el modo de edición. Teniendo en cuenta los límites de las interfaces táctiles (sin teclas modificadoras), eso es a lo que nos tenemos que atascar. Pero creo que un controlador de matriz sería genial en el iPad con detalles maestros cuando desee editar una lista filtrada. –

+4

A menudo ato mis '@ properties' a casillas de verificación y campos de texto en mi UI para aplicaciones Mac OS X ... sería bueno poder hacerlo en iOS. Siento que tal vez la razón por la que Apple no la incluyó es porque son bastante difíciles de depurar ... el seguimiento de la pila que obtienes cuando trabajas un enlace de cacao está lleno de llamadas dentro del SDK, lo que hace que sea bastante difícil de averiguar lo que has hecho mal – ArtOfWarfare

Cuestiones relacionadas