2014-03-25 23 views
0

我正在创建一个文字游戏,我需要为用户分配硬币:如何制作3个bool全局变量?

首先,我已经反复阅读了“全局变量”主题。不幸的是,我无法成功地完成这些任务。

我需要使3 bool全局变量,如btn1Pressed,btn2Pressed,btn3Pressed。 &如何使int类型的“硬币”这个词全球化? 这是如何完成的?

@interface MainView : 
+0

可能重复[在iPhone项目申报全局变量( http://stackoverflow.com/questions/1249131/declaring-global-variables-in-iphone-project) – BytesGuy

回答

0

要声明全局变量,您需要在任何类定义之外声明它们。如果我有很多全局变量,我通常会将它们放在它们自己的源文件中,并将其命名为globals.m以帮助保持组织性。如果我只有一个或两个,我只需在App委托中声明它们(在#includes之后但在@implementation之前)。

int coins; 
BOOL btn1Pressed; 
BOOL btn2Pressed; 
BOOL btn3Pressed; 
// etc 

然后你在一个共同的头(我用globals.h)作为extern申报。声明他们的任何类定义之外:

extern int coins; 
extern BOOL btn1Pressed; 
extern BOOL btn2Pressed; 
extern BOOL btn3Pressed; 
... 

这告诉说:“这个变量声明在别处”的编译器,所以它知道在链接的时间来解决它。将该头部包含在需要访问这些变量的任何源模块中。

0

使用关键字“extern”可以使变量成为全局变量。

extern int coins = 9001; //over nine thousand! 
+0

使用extern定义向变量添加初始化程序会导致编译器警告(或严格编译错误)。如果要为此使用一个全局变量,最好在源文件中定义'extern int coins';在一个公共头文件和'int coins = 9001;'中。 – mah

+0

我忘了提及这一点,感谢您的支持。 – Honor

0

使用单例模式是实现它的理想方式。

在YourAppdelegate.h文件中为您的bools创建属性btn1Pressed,btn2Pressed,btn3Pressed。在YourAppdelegate.m文件中进一步合成它们。

现在,如果您要访问或以任何其它类改变这些值

// Accessing btn1Value 
    BOOL checkTheValueOFButton1 = [(YourAppDelegate *)[UIApplication sharedApplication]btn1Pressed]; 

如果你想改变的价值

[(YourAppDelegate *)[UIApplication sharedApplication]setbtn1Pressed:NO];