Entiendo lo que es un delegado hace en iOS, y he mirado en el código de ejemplo, pero me pregunto acerca de las ventajas de este tipo de encapsulación (en oposición a la inclusión de los métodos de delegado en el principal objeto).

¿Cuál es el «objeto principal»?

OriginalEl autor Louis | 2011-08-13

12 Comentarios

  1. 11

    Delegación es un patrón de diseño no sólo se utiliza en iOS, pero en muchos otros idiomas. Permite a mano los valores y mensajes a través de su jerarquía de clases.

    es, de alguna manera, como el Intent en Android ?

    OriginalEl autor Patrick

  2. 16

    La ventaja de que el delegado patrón de diseño es el acoplamiento flexible. Permite a la clase a (el delegado) a depender de la clase B (delegación de clase) sin clase B, de tener conocimiento de la clase A. Esto asegura que la relación de dependencia es de una sola vía, en lugar de ser circular.

    También forma la fundación (en minúsculas «f») de Apple marcos, ya que les permite invocar el código según corresponda, cuando la funcionalidad específica de la aplicación que se requiere. Por ejemplo, responder a un botón de tap o decirle a la vista de la tabla el número de secciones que no debe ser.

    OriginalEl autor John Topley

  3. 9

    En iOS, la delegación requiere el «delegado» de la clase para implementar un protocolo que contiene los métodos que el «delegar» sabe acerca de. Todavía siguiente?

    Delegación de implementación de la clase va a llamar a estos métodos de protocolo, pero el delegado de la clase va a implementar estos métodos en su clase.

    Esto mantiene sus Clases de limpiar.

    En realidad, usted realmente no necesita delegación si se puede añadir nuevos métodos a una sola clase. Pero para UIKIT del UIView clase, Apple no permite añadir nuevas implementaciones de la clase.

    me corrija si estoy equivocado.

    OriginalEl autor mskw

  4. 4

    El uso más común de un delegado en iOS es establecer la comunicación dentro de los módulos que no están relacionados o parcialmente relacionados unos con otros. Por ejemplo, la transferencia de datos hacia adelante en un UINavigationController es muy fácil, simplemente tenemos que usar segue. Sin embargo, el envío de datos hacia atrás es algo complicado. En este caso, podemos utilizar delegado para enviar los datos hacia atrás.

    Vamos a llamar, la clase, asociado con el primer Controlador de ClassA y la clase, asociado con el segundo Controlador de ClassB. El primer Controlador está conectado al segundo controlador con un segue adelante. Podemos pasar los datos de ClassA a ClassB a través de esta aplicación. Ahora, tenemos que pasar algunos datos para ClassA de ClassB para lo cual puede utilizar los delegados.

    El remitente de la clase(ClassB), debe tener un protocolo en su archivo de encabezado(.h) y también una referencia de como delegado en el interior del bloque, @interfaz ClassB …. @finales. Esta referencia vamos a la ClassB saber que tiene un delegado. Cualquier clase que quiera usar esta ClassB tendrá que poner en práctica todos los de este protocolo métodos necesarios(si los hubiere). Así, la clase de receptor,ClassA va a implementar el método, pero la convocatoria se hará por el remitente de la clase, ClassB.

    De esta manera, la clase de receptor no necesita preocuparse por el remitente de la clase interna de la estructura, y puede recibir la información necesaria.

    OriginalEl autor Natasha

  5. 2

    Delegado es simplemente un medio de comunicación entre los objetos de las aplicaciones de iOS. Usted puede pensar delegación como una forma sencilla de conectar objetos y comunicarse el uno con el otro. En otras palabras, podemos decir que delegar permite que un objeto se envía el mensaje a otro objeto cuando se produce el evento.

    Permite entender esto, en un ejemplo de la vida real.

    Supongamos que hay alguna oficina con 5 contadores. Usted entra a la oficina y ve a contador 1 y enviar algunos detalles sobre el contador. Ahora, sus datos deben pasar a través de algún proceso que contador 3 sé, pero contador 1 no. Así contador 1 diré que esperar algún tiempo y pasar sus detalles para contrarrestar 3 para obtener el proceso completo. En este caso contador 3 es el delegado que se encarga de sus eventos, el cual es referido por el contra 1. Después de contador 3 completa el procesamiento de los datos, se envía el mensaje al contador 1 informa de que se ha terminado el proceso y que puede seguir adelante ahora.

    OriginalEl autor Vivek Tank

  6. 1

    Delegación como yo lo entiendo es cuando un objeto va a pasar la responsabilidad de handeling un evento a otro objeto, por lo tanto «delegar» la responsabilidad de ese objeto.

    Por ejemplo, si usted tiene un NSButton en iOs generalmente asignar el Delegado a ser el padre de controlador de vista. Esto significa que en lugar de handeling retocar eventos en la definición del botón en su lugar se manejan en el controlador de vista.

    OriginalEl autor Michael

  7. 1

    La principal ventaja de la delegación simplemente la aplicación de los métodos en el «objeto principal» (por que supongo que te refieres a que el objeto de hacer el delegar) es que la delegación tiene la ventaja de enlace dinámico. En tiempo de compilación, la clase del objeto delegado no necesita ser conocido. Por ejemplo, usted podría tener una clase que los delegados de la windowDidMove: método. En esta clase, usted probablemente iba a ver algo de código como

    if([[self delegate] respondsToSelector:@selector(windowDidMove:)]) {
        [[self delegate] windowDidMove:notification];
    }

    Aquí, la delegación de la clase es la comprobación en tiempo de ejecución si su delegado responde al método de selección. Esto ilustra un concepto poderoso: el de delegación de la clase no necesita saber nada acerca de la delegada otros que si responde a ciertos métodos. Esta es una poderosa forma de encapsulación, y podría decirse que es más flexible que el de la superclase-subclase relación, ya que el delegador y el delegado son tan débilmente acoplados. También es preferible que simplemente la implementación de métodos en el «objeto principal» (delegar objeto), ya que permite que el tiempo de ejecución de la alteración de la implementación del método. También es discutible que esta dinámica en tiempo de ejecución hace que el código inherentemente más peligrosos.

    OriginalEl autor Emmett Butler

  8. 1

    Delegado es un importante patrón de diseño para la aplicación de iOS.Todas las aplicaciones directamente o detrás de la capucha uso de este patrón de delegado.
    Delegado patrón de diseño permite a un objeto para actuar en nombre de otro.
    Si estamos trabajando con formato tableview, a continuación, hay «tableViewDelegate» y «tableViewDataSource«. Pero lo que esto significa

    Suponga que tiene un formato tableview.
    ahora algunos de los principales motivos de preocupación para esto.
    1.¿cuál es el origen de los datos(los datos que aparecerán en la vista de tabla) para este formato tableview?
    2.Cuántos fila de la vista de tabla, etc.
    delegado patrón de diseño a resolver estas preguntas usando otro objeto que el proveedor o el solucionador de estas preguntas.
    Un objeto se marca a sí mismo a la vista de tabla y garantizar la vista de la tabla que «Sí, yo soy el hombre que puede ayudarle» marcando a sí mismo como el delegado de la vista de tabla .Gracias

    OriginalEl autor Tunvir Rahman Tusher

  9. 0

    La clase marcada como delegado toma la responsabilidad de manejar las devoluciones de llamada se envían cuando se produce algún evento. Por ejemplo, en el caso de UITextField, hay algunos métodos que se llama cuando algunos acontecimientos, como la edición comenzó, la edición de composición, de carácter escrito, etc. Estos métodos ya estará definido en el protocolo. Tendremos que asignar delegado para que decir que la clase va a manejar estos eventos.

    OriginalEl autor NSPratik

  10. 0

    Con la ayuda de un delegado, de dos vías de comunicación se puede lograr. Un delegado puede ser utilizado para hacer que un objeto reutilizable, para proporcionar una manera flexible para enviar mensajes, o para implementar la personalización.

    OriginalEl autor Vaibhav Shiledar

  11. 0

    En iOS ecosistema especialmente UIKit Marco que consta de UIApplication, UITableView, UICollectionView, UITextfield & así en los usos delegado & origen de datos patrón de diseño intensamente para comunicar los datos de un lado a otro.

    Delegado patrón de diseño se utiliza para pasar/comunicación de datos de FirstVC(Delegador) a SecondVC(Delegado) para completar una tarea.
    Aquí, SecondVC(Delegado) se ajusta a un protocolo delegado & implementa todos sus requisitos como los métodos proporcionando cuerpo para completar la tarea dada por FirstVC(Delegador).
    También, FirstVC(Delegador) objeto va a tener una propiedad opcional de protocolo delegado de tipo i.e delegado que debe ser asignado por SecondVC(Delegado).

    Ahora, FirstVC(Delegador) se puede llamar a ese método que residen en SecondVC(Delegado), pasando datos de su delegado de la propiedad.

    EX: CEO(FirstVC) que pasa por los datos que yo.e «datos confidenciales», a la Secretaria(SecondVC) para hacer aún más los procesos mediante los datos.

    Origen de datos patrón de diseño es parte de Delegado patrón que se utiliza para pasar/comunicación de datos de SecondVC(Delegado) para FirstVC(Delegador) cuando se asigna una tarea a SecondVC(Delegado).
    Aquí, SecondVC(Delegado) se ajusta a un protocolo de origen de datos & implementa todos sus requisitos como los métodos con el tipo devuelto por la prestación de cuerpo a hablar de nuevo a FirstVC(Delegador) después de que la tarea está dada por FirstVC(Delegador).
    También, FirstVC(Delegador) objeto va a tener una propiedad opcional de protocolo de origen de datos, escriba yo.e origen de datos que deben ser asignados por SecondVC(Delegado).

    Ahora, FirstVC(Delegador) se puede llamar a ese método con un tipo de retorno que residen en SecondVC(Delegado), pasando datos de su propiedad dataSource.

    EX: Secretario(SecondVC) responde con una información que yo.e «Señor, yo ya estoy teniendo mucho trabajo por hacer. Por favor, ¿puede asignar los datos a los otros» a CEO(FirstVC). Ahora, el CEO(FirstVC) analizará los datos para hacer aún más los procesos.

    OriginalEl autor Chethan M

Dejar respuesta

Please enter your comment!
Please enter your name here