Objective-C Language
Protocolos y Delegados.
Buscar..
Observaciones
Protocolos y delegados son dos conceptos relacionados pero diferentes:
Un protocolo es una interfaz que una clase puede cumplir, lo que significa que la clase implementa los métodos enumerados.
Un delegado suele ser un objeto anónimo que se ajusta a un protocolo.
La aplicación del Delegado llamado Delegación es un patrón de diseño.
En un extremo, tenemos el concepto de herencia, que crea un acoplamiento estrecho entre la subclase y su superclase, mientras que el patrón de diseño de Delegación proporciona una alternativa para evitar este acoplamiento estrecho mediante el cual podemos crear una relación mucho más flexible basada en objetos Delegados anónimos.
Implementación de Protocolos y mecanismo de Delegación.
Supongamos que tiene dos vistas ViewA y ViewB
La instancia de ViewB se crea dentro de ViewA , por lo que ViewA puede enviar un mensaje a ViewB's instancia ViewB's , pero para que ocurra lo contrario, necesitamos implementar una delegación (de modo que el uso de ViewB's instancia delegada de ViewB's pueda enviar un mensaje a ViewA )
Siga estos pasos para implementar la delegación.
En
ViewBcrear protocolo como@protocol ViewBDelegate -(void) exampleDelegateMethod; @endDeclarar al delegado en la clase de remitente.
@interface ViewB : UIView @property (nonatomic, weak) id< ViewBDelegate > delegate; @endAdoptar el protocolo en Class ViewA.
@interfac ViewA: UIView < ViewBDelegate >Establecer el delegado
-(void) anyFunction { // create Class ViewB's instance and set the delegate [viewB setDelegate:self]; }Implementar el método delegado en la clase
ViewA-(void) exampleDelegateMethod { // will be called by Class ViewB's instance }Utilice el método en la clase
ViewBpara llamar al método delegado como-(void) callDelegateMethod { [delegate exampleDelegateMethod]; //assuming the delegate is assigned otherwise error }