2010-04-07 2 views
0

J'ai ce code dans mon fichier viewController.mXCode, erreur: '_object' non déclaré. Vous avez besoin d'aide pour résoudre ce problème

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    GameLogic *_game = [[GameLogic alloc] init]; 
    [_game initGame]; 

    ....... 
} 

GameLogic est une autre classe que j'ai créé. dans le même fichier viewController.m, j'ai obtenu une autre fonction

- (void)test { 
    if([_game returnElecFence]) //[_game returnsElecFence] causes the error 
    { 
     NSLog(@"YES"); 
    } 
    else { 
     NSLog(@"NO"); 
    } 
....... 
} 

Le problème est, chaque fois que la fonction de test est appelé, je reçois une erreur disant « _game » non déclaré. J'ai essayé de placer le code d'initialisation de GameLogic dans le fichier .h et sur le @implementation pour le rendre global mais chaque méthode que j'ai essayée a abouti à une erreur pire. TIA à tous ceux qui peuvent suggérer quelques idées pour effacer cette erreur

Répondre

1

_game est une variable locale. Sa portée est seulement la méthode dans laquelle elle est déclarée (viewDidLoad dans ce cas).

Vous devez faire de _game une variable globale, ou mieux encore, une variable d'instance de votre classe viewController afin qu'elle puisse être accessible à toutes les méthodes de la classe.

+0

comment puis-je faire cela? J'ai essayé de mettre GameLogic * _game = [[GameLogic alloc] init]; au lieu de @implementation à la place et j'ai une erreur: l'élément initializer n'est pas constant. – Treon

+0

Ce n'est pas une déclaration de variable, c'est du code. Vous ne pouvez pas coller le code où vous voulez. Créer un GameLogic * _game; instance variable dans votre section d'interface, puis changez viewDidLoad pour dire simplement: _game = [[GameLogic alloc] init]; – wadesworld

+0

Ok, j'ai ajouté le GameLogic * _game; dans la section interface et initialisez-le dans viewDidLoad. Mais maintenant j'ai eu une erreur supplémentaire dans la section de l'interface pointant vers GameLogic * _game; erreur: spécification-qualificatif-liste attendue avant 'GameLogic' – Treon

Questions connexes