Explicaré esto de una manera que no sea de computadora, ya que creo que será más claro de entender.
Tomemos un trabajo. Un objeto eres tú, un colega, tu jefe; su computadora, su archivador. Básicamente todos los elementos identificables individuales y cosas que te rodean. Cada uno tiene un propósito, ya sea realizar acciones, almacenar cosas o responder a las entradas.
Cuando su jefe le pide que haga un trabajo para él, él le delega el trabajo. En este caso, ahora eres el delegado . Un delegado es un objeto que asume la responsabilidad de realizar un trabajo para otra persona.
- ¿Cómo se implementan las propiedades atómicas en ObjC?
- Cómo instalar juegos de iOS en Android
- ¿Cuáles son algunas aplicaciones interesantes que están habilitadas por la tecnología iBeacons presentada en iOS 7?
- ¿Cómo es tu experiencia con Fabric.io?
- ¿Existe una aplicación similar a Audacity para iOS?
Volviendo al mundo de la programación, su objeto de clase es cualquier cosa, desde un modelo de usuario hasta un controlador de vista o servicio. Su clase se convierte en delegado cuando necesita realizar una tarea en nombre de otra cosa.
Un ejemplo en el que se encontrará rápidamente con esto es con vistas de tabla. Una vista de tabla es un objeto y el controlador que contiene también es un objeto. La vista de tabla requiere cierta información para funcionar.
La tabla necesita saber cuántas filas tiene, cómo debe verse cada celda y qué sucede cuando interactúa con una celda. Ahora la vista de tabla necesita obtener estos datos de alguna parte y aquí es donde interviene su objeto “delegado”.
Le dice a la tabla que un objeto específico será el delegado para estas tareas.
Cuando la tabla quiere saber cuántas filas debe tener, le pide al delegado que se la diga. Si quiere saber cómo se ve una celda, nuevamente le pedirá al delegado que se lo diga.
Esto permite que la tabla sea reutilizable en muchos proyectos y escenarios, ya que no necesita saber cómo funciona su aplicación. Su delegado tiene el trabajo de decirlo.