2009-11-24 16 views

Respuesta

6

Un delegado es un objeto. Un método delegado es un método que se espera que el objeto delegado implemente. Se requieren algunos métodos de delegado, mientras que otros no. En IOS, se espera que la mayoría de los delegados se conformen a un protocolo Objective-C; la declaración del protocolo le dirá qué métodos son opcionales y cuáles son obligatorios.

5

A delegado es simplemente una referencia a otro objeto y un método delegado es un método del delegado.

A método de delegado implementa el mecanismo de devolución de llamada que generalmente toma al emisor como uno de los parámetros que se llamarán.

42

Es difícil de explicar, pero un delegado realiza métodos en nombre de otro objeto. Una vista de tabla no sabe qué hacer cuando elige un elemento en la lista. En cambio, tiene que hacerle una pregunta al objeto delegado, específicamente, didSelectRowAtIndexPath. La única información que conoce la tabla es qué sección y fila tocó el usuario. Entonces, la vista de tabla le da esta información al objeto delegado diciendo básicamente "Oye, el usuario tocó la Fila 4 en la Sección 0. Haz algo".

El objeto delegado encuentra el método didSelectRowAtIndexPath y ejecuta el código dentro.

Hay muchos métodos Delegate para muchos objetos diferentes. Por ejemplo, el objeto Campo de texto no puede hacer nada por sí mismo. En cambio, usa un delegado para realizar acciones. Si presiona la tecla Intro en el teclado en pantalla, el campo de texto le pide al objeto delegado que realice un método específico, textFieldShouldReturn. Si el delegado que configura para su campo de texto no tiene un método textFieldShouldReturn, el campo de texto no sabrá qué hacer cuando presione el botón enter.

¿Tiene esto sentido?

+1

Eso ayudó mucho. ¡Muchas gracias! –

+0

Explicación realmente muy buena..Voy a dar el mismo ejemplo a los alumnos para explicar el concepto de delegado. –

+0

Gran respuesta ... – konyv12

0

Todas las aplicaciones de iOS usan Delegación. Incluso los básicos. Ya está disponible en el código que te dan. En otros idiomas usarías algo así como herencia.

Al igual que en el mundo real, un Delegado representa a alguien/algo o, en este caso, un objeto.

Tome los objetos de la interfaz de usuario, por ejemplo, ya tienen sus métodos para realizar tareas. Pero pueden conectarse a su viewController (objeto/clase personalizada) y pueden delegar una responsabilidad a su (s) objeto (s).

Algunas cosas para recordar:

  1. Todo esto hace usando los protocolos delegado.
  2. Es algo voluntario. por lo que sus objetos optan por ser el delegado.
  3. Mire el protocolo de delegado e implemente los métodos. Algunos son opcionales y otros son obligatorios.
  4. Asegúrese de que el objeto delegado esté conectado a su objeto.
+0

Estás muy cerca, pero creo que tu fraseología podría mejorar un poco. Creo que sería mejor decir que los delegados se utilizan para cosas que el objeto en sí mismo no puede hacer por sí mismo. Digamos UITableView, es una clase que maneja y dibuja una tabla, pero no puede hacer todo por sí misma porque necesita un delegado para saber cuántas filas dibujar, los contenidos de esas filas, etc. –

Cuestiones relacionadas