He definido un protocolo en un archivo separado (myProtocol.h). Aquí está el código para ello:Aplicación IOS: defina el protocolo en un archivo separado
#import <Foundation/Foundation.h>
@protocol myProtocol <NSObject>
-(void) loadDataComplete;
@end
Ahora quiero llamar a este método por lo que he hecho el siguiente código:
firstViewController.h:
#import "myProtocol.h"
@interface firstViewController : UIViewController{
id <myProtocol> delegate;
}
@property (retain) id delegate;
-(void) mymethod;
firstViewController.m
@implementation firstViewController
@synthesize delegate;
- (void)viewDidLoad {
[self mymethod];
}
-(void) mymethod {
//some code here...
[delegate loadDataComplete];
}
tengo otro archivo en el que también se utiliza el protocolo:
secondViewController.h:
#import "myProtocol.h"
@interface secondViewController : UIViewController<myProtocol>{
}
secondViewController.m:
-(void) loadDataComplete{
NSLog(@"loadDataComplete called");
}
pero mi segundo ViewController no está llamando al protocolo methad. ¿Por que es esto entonces? Cualquier sugerencia será apreciada.
¿Estás realmente creando un objeto y asignándolo como un delegado? Además, tener una fuerte referencia a un delegado no es habitual. Finalmente, los nombres de clase deberían comenzar con una letra mayúscula. – Abizern
configura a su delegado, ¿cuál es el valor de self.delegate into mymethod? tengo la costumbre de usar "yo". para el acceso a la propiedad – divol