2014-03-25 22 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];