2012-09-18 39 views
-1

好吧,我在Objective C和一般编程方面有点小菜鸟,但我正在努力学习,所以我会appreviate一些帮助。从其他类调用布尔总是返回false

我正在做几个班的游戏。在主菜单屏幕上,我有2个按钮,非常简单,并且有一个开始游戏按钮。此刻,我已经在类MainView中声明了一个名为“level”的公共布尔值,然后在硬按钮操作中将level设置为true,在简单按钮操作中将其设置为false。在不同的I类已导入MainView.h和方法被称为“numberOfCards”我有:

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

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

} 

else { 
    cards = 20; 
} 

但水平始终返回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

请分享更多的代码。 – holex

+0

对不起,我更改了代码,我的意思是false – user1489334

回答

0

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

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

您需要将对现有MainView对象的引用传递给需要请求级别信息的对象。具体怎么做取决于你的程序结构以及这两个类是如何相互关联的。

+0

有没有什么办法可以给出某种例子? – user1489334

+0

如何/在哪里创建处理按钮触摸的原始'MainView'控制器?什么创建了包含'numberOfCards'方法的对象? –

+0

MainView是一个类,不知道你是如何或在哪里创建它的意思。 numberOfCards是一个名为cards.m的类,它是NSObject的一个子类 – user1489334