Soy nuevo en el desarrollo en el iPhone. Casi todos los proyectos de muestra (así como las plantillas de proyecto predeterminadas) tienen uno o más delegados y controladores. ¿Puede alguien darme un desglose de lo que los delegados son responsables frente a lo que se supone que deben hacer los controladores?Responsabilidades de los delegados y controladores en Cocoa Touch?
Respuesta
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.
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.
- 1. Delegados vs. eventos en Cocoa Touch
- 2. Cocoa-Touch - Delegación confusión
- 3. Girar UIView en Cocoa Touch
- 4. ¿Cuáles son los patrones de diseño comunes en Cocoa Touch?
- 5. Generación de tonos en Cocoa Touch
- 6. Comprensión del patrón de diseño MVC en Cocoa Touch
- 7. Librería de código abierto Cocoa/Cocoa-Touch POP3/SMTP?
- 8. ¿Cuál es la diferencia entre los eventos con controladores de delegados y los que no?
- 9. Plantilla "Cocoa Touch Application" de Xcode 3.1.1
- 10. Cocoa-Touch: performSelectorOnMainThread: comportamiento extraño + crash
- 11. ¿Hay más videos de Cocoa y Cocoa Touch que valen la pena mirar?
- 12. Cocoa Touch - ¿Agregar un UIImageView programáticamente?
- 13. Cocoa Touch: Crear y agregar una vista personalizada
- 14. drawrect Vs layoutsubviews - NSView - Cocoa touch
- 15. ¿Tiene sentido aprender primero Cocoa para Leopard y luego Cocoa Touch para iPhone?
- 16. ¿Hay alguna manera de determinar dinámicamente los ivars de una clase en tiempo de ejecución en Cocoa/Cocoa Touch?
- 17. ¿Cómo verificar un certificado de sitio web en Cocoa Touch?
- 18. ¿Qué elemento de UI en Cocoa Touch es esto?
- 19. ¿Hay un buen motor de plantillas HTML en Cocoa Touch?
- 20. Objective-C/Cocoa: Un diseño adecuado para los delegados y reguladores
- 21. ¿Cuándo se produce la liberación automática en Cocoa Touch?
- 22. Dónde colocar la "pila de datos del núcleo" en una aplicación Cocoa/Cocoa Touch
- 23. Dibuje la imagen de destino con Cocoa Touch
- 24. Cargando una vista Controlador y jerarquía de vista programáticamente en Cocoa Touch sin xib
- 25. ¿Los controladores de rieles son multiproceso? Thread.exclusive en los controladores
- 26. Pregunta sobre foreach y los delegados
- 27. ¿Diferencia entre el protocolo y los delegados?
- 28. ¿Java equivalente de los delegados de Cocoa/protocolos informales Objective-C?
- 29. ¿Cuál es el Cocoa Touch equivalente a NSArrayController?
- 30. Marco Cocoa-Touch para hablar con un socket TCP?