好吧,我在Objective C和一般编程方面都是一个菜鸟,但我正在努力学习,所以我会提供一些帮助。
我正在制作一个有几节课的游戏。在主菜单屏幕上,我有两个按钮,简单和硬,以及一个开始游戏按钮。目前,我已经声明了一个名为" level"的公共布尔值。在MainView类中,然后在硬按钮操作中我将level设置为true,在easy按钮操作中我将其设置为false。在另一个类中,我导入了MainView.h,并在一个名为" numberOfCards"我有:
MainView *view = [[MainView alloc]init];
if(view->level){
cards = 10;
}
else {
cards = 20;
}
但是level总是返回false,我猜测当我初始化我的MainView时,它会重置变量吗?
我是以错误的方式解决这个问题吗? 任何帮助都会很棒。
继承了更多代码:
MainView.h
@interface MainView : UIViewController <HostViewControllerDelegate, JoinViewControllerDelegate, GameViewControllerDelegate>
{
@public
BOOL level;
}
@end
mainView.m
- (IBAction)easyButton:(id)sender
{
level = NO;
}
- (IBAction)hardButton:(id)sender
{
level = YES;
}
答案 0 :(得分:0)
你说,“我猜测当我初始化我的MainView时,它会重置变量吗?”
有效,是的。更具体地说,它创建一个具有自己的level
变量的新对象,未初始化的BOOL的默认值为NO。
您需要将对现有MainView
对象的引用传递给需要请求级别信息的对象。究竟如何做到这一点取决于你的程序结构以及这两个类如何相互关联。