¿Cómo funcionan los delegados en iOS?

Un objeto puede permitir que otro objeto ayude a realizar ciertas tareas. El último es el delegado del primero.

En Cocoa Touch, el marco de IU para iOS, los delegados generalmente se describen mediante protocolos. P.ej. UITableView tiene 2 delegados que se describen mediante los protocolos UITableViewDataSource y UITableViewDelegate. Cada protocolo especificará los métodos que los delegados deben implementar. Implementa métodos especificados por estos 2 protocolos en su (s) delegado (s) para que la instancia de UITableView conozca los datos que desea presentar y cómo reaccionar cuando el usuario interactúa con la vista de tabla.

A veces, estos métodos son opcionales, generalmente porque hay un valor predeterminado o simplemente no implementa o anula un determinado comportamiento. Por ejemplo, si no implementa -numberOfSectionsInTableView: de UITableViewDataSource, se supone que tiene exactamente 1 sección.

En cierto modo, los delegados en iOS son simplemente devoluciones de llamada con un protocolo formal (tanto en el sentido general de la palabra como en la terminología de iOS).

Básicamente, la delegación es una forma de permitir que los objetos interactúen entre sí sin crear fuertes interdependencias entre ellos, ya que esto hace que el diseño de su aplicación sea menos flexible. En lugar de que los objetos se controlen entre sí, pueden tener un delegado al que envían (o delegan) mensajes, y el delegado hace lo que sea que hagan, para responder y actuar a este mensaje, y luego generalmente devolver algo al otro objeto .

La delegación también es una mejor alternativa a la subclase. En lugar de tener que crear sus propias clases personalizadas para alterar ligeramente la forma en que se comportan otros objetos, o pasarles datos, la delegación permite que los objetos envíen mensajes a sus delegados para que trabajen para ellos sin la sobrecarga de crear subclases para realizar cambios menores en otros objetos

Por supuesto, la principal desventaja de la delegación es que los métodos de delegado disponibles dependen de lo que los ingenieros de Apple prevean que sea útil y qué implementaciones comunes esperan que la gente necesite, lo que impone una restricción sobre lo que puede lograr. Aunque, como señaló Quinn Taylor, esto es específico de los marcos de Cocoa y, por lo tanto, no se aplica en todas las situaciones.

Si la delegación es una opción sobre la subclasificación, tómala, porque es una forma mucho más limpia de administrar tu código y las interacciones entre los objetos.

iOS – Delegados

Supongamos que un objeto A llama a un objeto B para realizar una acción. Una vez que se completa la acción, el objeto A debe saber que B ha completado la tarea y tomar las medidas necesarias. Esto se logra con la ayuda de los delegados. Los conceptos clave en el ejemplo anterior son -A es un objeto delegado de BB tendrá una referencia de AA implementará los métodos delegados de BB notificará a A a través de los métodos delegados.

Feliz aprendizaje de CodesRoom.com