Tout au long de mon application, je reçois des avertissements sémantiques lorsque je configure ViewController.delegate = self
. J’ai cherché et trouvé des messages similaires, mais aucun n’a pu résoudre mon problème.
ViewController.m:
GameAddViewController *gameAddViewContoller = [[navigationController viewControllers] objectAtIndex:0]; gameAddViewContoller.delegate=self;
Je reçois le message d’erreur lors de la définition de .delegate=self
.
GameAddViewController.h:
@protocol GameAddViewControllerDelegate - (void)gameAddViewControllerDidCancel:(GameAddViewController *)controller; - (void)gameAddViewController:(GameAddViewController *)controller didAddGame:(Game *) game; @end @interface GameAddViewController : UITableViewController { sqlite3 *pitchcountDB; NSSsortingng *dbPath; } @property (nonatomic, strong) id delegate; ... @end
ViewController.h:
#import "GameAddViewController.h" @class ViewController; @protocol ViewControllerDelegate - (void)ViewControllerDidCancel:(ViewController *)controller; @end @interface ViewController : UIViewController -(void) checkAndCreateFile; @end
Quelqu’un peut-il me diriger dans la bonne direction pour résoudre les messages d’avertissement?
A cette ligne:
gameAddViewContoller.delegate=self;
Notez que self est de type ViewController
qui n’est PAS conforme au protocole GameAddViewController
.
Pour moi, ce qui s’est passé, c’est que je n’ajoutais pas le délégué à l’interface de mon fichier d’en-tête.
Par exemple
@interface TheNameOfYourClass : UIViewController @end
Vous placez le
Cela pourrait aider d’autres personnes qui ajoutent la connectivité multipoint directement à un ViewController. En haut de myViewControllerName.h, ajoutez ‘
@interface myViewControllerName : UIViewController
aussi, si vous définissez votre délégué à xx.m, mais que vous l’utilisez dans une autre classe. vous pouvez avoir ce problème. alors, il suffit de mettre le protocole définir sur xx.h, quand il est nécessaire.