【问题标题】:How to make 3 bool global variable?如何制作 3 bool 全局变量?
【发布时间】:2014-03-25 14:09:12
【问题描述】:

我正在创建一个文字游戏,我需要将硬币分配给用户:

首先,我一遍又一遍地阅读主题“全局变量”,不幸的是我无法成功地完成它们。

我需要创建 3 个 bool 全局变量,例如 btn1Pressed、btn2Pressed、btn3Pressed。 以及如何使“硬币”这个词也成为 int 类型的全局变量? 这是怎么做到的?

@interface MainView : 

【问题讨论】:

标签: ios iphone objective-c


【解决方案1】:

要声明全局变量,您需要在任何类定义之外声明它们。如果我有很多全局变量,我通常将它们放在它们自己的源文件中,并将其命名为 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;
...

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 将初始化程序添加到具有 extern 定义的变量会导致编译器警告(或严格编译的错误)。如果要为此使用全局,最好在公共头文件中定义extern int coins;,在源文件中定义int coins = 9001;
    【解决方案3】:

    如果您的意思是“在您的应用程序中随处可访问”中的“全局变量”,您可以使用单例:

    http://www.galloway.me.uk/tutorials/singleton-classes/

    这样您就可以将所有此类全局变量分组到一个全局对象中。

    【讨论】:

      【解决方案4】:

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

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

      现在,如果您想在任何其他类中访问或更改这些值

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

      如果你想改变值

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

      【讨论】:

        猜你喜欢
        • 2013-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-24
        • 2014-09-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多