¡He intentado resolver esto, lo prometo! ¡Hay una gran cantidad de información sobre esto y todavía estoy inundado en un mar de conceptos abstractos! Es como cuando era un niño y nadie podía explicarme por qué un país no podía simplemente imprimir más dinero y ser realmente rico. No soy tan retrasado con la mayoría de estas cosas, pero por alguna razón no puedo entender este concepto, por lo que realmente apreciaría si alguien pudiera deletrear como condescendiente "hablar con un niño de 4 años" lentamente como sea posible !Protocolos y delegados para Dummies
Creo que la acción objetivo tiene mucho sentido para mí. Es una forma útil de permitir que una vista hable con un controlador, sin tener que hacer mucho. Por lo que puedo decir, un objeto controlador efectivamente conecta un oyente al objeto de vista de modo que si un evento en particular ocurre en esa vista (es decir, botón presionado) se dispara el método del controlador. Esto puede no ser técnicamente preciso, pero como explicación abstracta tiene sentido para mí.
Así que la secuencia es:
- Un método de destino se crea en el objeto controlador.
- Se selecciona una vista y se conecta gráficamente a ese método.
- Ocurre un evento en esa vista que dispara el método desde el controlador.
Los protocolos y los delegados me han desconcertado. Sé que tiene algo que ver con permitir que los objetos hablen entre sí, pero traté de escribir mi (falta de) comprensión tan abajo y simplemente la eliminé, ya que creo que es mejor no deshacer los nudos en mi pensamiento actual, sino simplemente limpie la pizarra y comience de nuevo. Si alguien tuviera a bien pasar un poco de tiempo a explicar el propósito de
- El uso de delegados/protocolos en lugar de apuntar/acción
- Los constituyentes del código, y donde vive
- La secuencia de eventos que ocurren cuando el proceso se está utilizando
Estaría eternamente agradecido.
A juzgar por algunos de los comentarios sobre otras explicaciones, siento que no soy el único un poco perdido, así que espero que esto sea de uso general. ¡Muchas gracias!
Editar:
bien como pensaba que tal vez si sólo me tiendo a cabo mi entendimiento personas me pueden corregir, y podría hacer esto más fácil.
Mi muestra está tomada del Apple Docs, con una ventana como objeto de vista y WindowDelegate como delegado, donde un clic en el botón Cerrar ventana desencadena un "¿debo cerrar?" mensaje al delegado.
constituyentes del Código: Ventana (Ver) WindowDelegate (Vista Controlador?)
- declarar el protocolo que un delegado puede utilizar en la sección de interfaz de la ventana (Ver).
- Crea una instancia del delegado en la ventana.
- Indique que WindowDelegate implementa el protocolo de ventana, incluyendo: en su interfaz. (Algo inestable aquí?)
- Escriba la implementación necesaria de los métodos en la sección de implementación de WindowDelegate (View Controller).
- En un determinado evento, la ventana enviará un mensaje a WindowDelegate con cierta información.
- WindowDelegate procesará esto y devolverá una respuesta.
¿En cualquier lugar en la línea derecha?
relacionado: http://stackoverflow.com/questions/6148148/delegates-what-are-they-really/6148838#6148838 – justin