我的viewController.m文件中有这段代码
- (void)viewDidLoad {
[super viewDidLoad];
GameLogic *_game = [[GameLogic alloc] init];
[_game initGame];
.......
}
GameLogic是我创建的另一个类。 在同一个viewController.m文件中,我有另一个函数
- (void)test {
if([_game returnElecFence]) //[_game returnsElecFence] causes the error
{
NSLog(@"YES");
}
else {
NSLog(@"NO");
}
.......
}
问题是,无论何时调用测试函数,我都会收到一条错误,说'_game'未声明。我尝试将GameLogic初始化代码放在.h文件中,并在@implementation之上将其设置为全局,但我尝试的每个方法都会导致更糟的错误。 TIA给任何可以提出一些想法来澄清这个错误的人
答案 0 :(得分:1)
_game是一个局部变量。它的范围只是它声明的方法(在本例中为viewDidLoad)。
你需要让_game成为一个全局变量,或者更好的是,你的viewController类的一个实例变量,以便它可以被类的所有方法访问。