-1

好的,我在Objective C和一般编程方面有点菜鸟,但我正在努力学习,所以我会获得一些帮助。

我正在制作一个有几个班级的游戏。在主菜单屏幕上,我有 2 个按钮,简单和困难,以及一个开始游戏按钮。目前,我在 MainView 类中声明了一个名为“level”的公共布尔值,然后在硬按钮操作中将 level 设置为 true,在简单按钮操作中将其设置为 false。在另一个类中,我导入了 MainView.h,在一个名为“numberOfCards”的方法中,我有:

MainView *view = [[MainView alloc]init];

if(view->level){
   cards = 10;

}

else {
   cards = 20;
}

但是 level 总是返回 false,我猜当我初始化 MainView 时,它会重置变量?

我是否以错误的方式解决这个问题?任何帮助都会很棒。

这里还有一些代码:

主视图.h

@interface MainView : UIViewController <HostViewControllerDelegate, JoinViewControllerDelegate, GameViewControllerDelegate>
{

@public
BOOL level;

}

@end

主视图.m

- (IBAction)easyButton:(id)sender 
{

level = NO;
}

- (IBAction)hardButton:(id)sender
{
level = YES;
}
4

1 回答 1

0

你说,“我猜当我初始化 MainView 时,它会重置变量?”

实际上,是的。更具体地说,它创建了一个具有自己level变量的新对象,未初始化的 BOOL 的默认值为 NO。

您需要将对现有MainView对象的引用传递给需要请求级别信息的对象。究竟如何做到这一点取决于您的程序结构以及这两个类如何相互关联。

于 2012-09-18T17:28:11.173 回答