En toda mi aplicación, recibo advertencias de problemas semánticos cuando configuro ViewController.delegate = self
. He buscado y encontrado publicaciones similares, pero ninguna pudo resolver mi problema.Asignar a 'id <Delegate>' de tipo incompatible 'ViewController * const_strong'
ViewController.m:
GameAddViewController *gameAddViewContoller = [[navigationController viewControllers] objectAtIndex:0];
gameAddViewContoller.delegate=self;
me sale el mensaje de error al establecer .delegate=self
.
GameAddViewController.h:
@protocol GameAddViewControllerDelegate <NSObject>
- (void)gameAddViewControllerDidCancel:(GameAddViewController *)controller;
- (void)gameAddViewController:(GameAddViewController *)controller didAddGame:(Game *) game;
@end
@interface GameAddViewController : UITableViewController <GameAddViewControllerDelegate>
{
sqlite3 *pitchcountDB;
NSString *dbPath;
}
@property (nonatomic, strong) id <GameAddViewControllerDelegate> delegate;
...
@end
ViewController.h:
#import "GameAddViewController.h"
@class ViewController;
@protocol ViewControllerDelegate <NSObject>
- (void)ViewControllerDidCancel:(ViewController *)controller;
@end
@interface ViewController : UIViewController <ViewControllerDelegate>
-(void) checkAndCreateFile;
@end
Puede alguien me punto en la dirección correcta para resolver los mensajes de advertencia?
¿Qué debo hacer para solucionarlo? ¿Hay algo que deba cambiar en el protocolo GameAddViewController? –
Bueno, depende de quién quiera ser su delegado. ¿Quién está implementando el protocolo GameAddViewController? – giorashc
GameAddViewController es el elemento secundario de ViewController y estoy implementando el método gameAddViewControllerDidCancel en ViewController. El mensaje de error proviene del método prepareForSegue en ViewController cuando configuro gameAddViewContoller.delegate = self. –