2008-11-21 17 views

Respuesta

11

La forma más simple que puedo pensar para diferenciar los dos son:

  • Un delegado es un protocolo (interfaz) que define métodos que un objeto implementa con el fin de recibir mensajes específicos de otros objetos. Los objetos de delegado se utilizan con mayor frecuencia para recibir devoluciones de llamada asincrónicas, como entradas de usuario, E/S.
  • Un controlador es un objeto que generalmente contiene elementos UI (vistas, controles, etc.) y datos, y ambos recibe y envía mensajes a los diversos objetos dentro de él. En muchos casos, un controlador es un delegado y puede implementar varios protocolos de delegado para recibir eventos de múltiples objetos.

Tenga en cuenta que muchos elementos y controles de la interfaz de usuario le permiten pasar eventos de vuelta al controlador vinculándolos a un método IBAction en Interface Builder. Esto es muy útil ya que no requiere código adicional para implementar delegados. Sin embargo, algunas otras API como ABPeoplePickerNavigationController o NSURLConnection no tienen visualización en Interface Builder, por lo que deben usar delegados para manejar sus eventos.

4

Un delegado es un objeto que implementa un conjunto de métodos que dependen de su aplicación o del marco del que se enlaza para funcionar. Es un medio de implementar un patrón de diseño basado en una delegación en el que la responsabilidad de realizar una acción se transfiere de una fuente raíz a una tercera parte interesada. Por ejemplo, UIApplication tiene delegar métodos que proporcionan a un tercero la capacidad de realizar operaciones en determinados momentos durante la vida útil de las aplicaciones. Puede considerarse como un hito en una línea de tiempo en la que puede contribuir a la historia.

Un controlador es un animal totalmente diferente y es responsable de hacer, bueno, el control. Un ViewController se encarga de administrar las vistas, para cargarlas en la memoria del disco cuando las necesita y descargarlas cuando no las necesita. Transforman el contenido de un objeto de modelo subyacente en una forma utilizable por los objetos de visualización, carga contenido en su modelo en memoria desde el disco o desde Internet y vuelca el contenido al disco cuando lo guarda y/o lo cierra.

Cuestiones relacionadas