Ios 如何生成可以在代码中任何位置随时读取/写入的int变量

Ios 如何生成可以在代码中任何位置随时读取/写入的int变量,ios,objective-c,cocos2d-iphone,encapsulation,Ios,Objective C,Cocos2d Iphone,Encapsulation,我喜欢在我的程序中声明一个int变量,这样我就可以在程序中的任何地方、任何时间更改并获取它的值 我不确定获取该值的语法,甚至不知道如何设置该值,也不知道应该在哪里声明它,当然,我也不确定它是否应该是某个@属性 其用途是,在我的Cocos2d游戏中,我可以使用主菜单将图形设置为TMX平铺贴图级别,以便在我的场景中加载。像这样 -(id) init {if((self=[super init])) { self.tileMap = [CCTMXTiledMap tiledMa

我喜欢在我的程序中声明一个
int
变量,这样我就可以在程序中的任何地方、任何时间更改并获取它的值

我不确定获取该值的语法,甚至不知道如何设置该值,也不知道应该在哪里声明它,当然,我也不确定它是否应该是某个
@属性

其用途是,在我的Cocos2d游戏中,我可以使用主菜单将图形设置为TMX平铺贴图级别,以便在我的场景中加载。像这样

-(id) init {if((self=[super init]))
    {
        self.tileMap = [CCTMXTiledMap tiledMapWithTMXFile:
            [NSString stringWithFormat:@"level%i.tmx", levelToLoadUp ,nil]];
    } return self;
}
我很难找到封装教程的这一特定部分,我觉得我应该在这里问它,因为我觉得这是一个相当简单的问题来回答。。 “如何生成程序范围的变量”


谢谢

这称为全局变量。它通常不被推荐,这可能就是为什么你很难在上面找到任何东西的原因

选择要添加的位置(声明)

要访问另一个部分,只需将extern关键字放在前面

 //Access from any file
 extern int gSomeGlobal;
 int myValue = gSomeGlobal;

 NSLog(@"%i",myValue);  // prints 5

如果您想以正确的方式执行此操作,请查看单例模式。本质上,您希望将所有变量本地化到一个文件中,以使其更清晰、更易于阅读

谢谢你的快速回复。我会马上查看你建议的链接,看看它是否符合我的要求。请允许我问一下,使用“扩展”方式做这件事有什么不好的地方?再次感谢您,首先,您的全局变量的作用域不限于任何类。您可以在不知道任何信息的情况下设置或获取值。在你的原始帖子发布后,我建议你保存要在游戏中加载的关卡。我建议您创建一个单例类GameState(例如类名),在其中存储与游戏当前状态相关的所有信息。它更干净,如果明天您需要在全局变量中保存其他值,那么将它们存储在一个单例实例中比存储几个全局变量更干净。我刚刚阅读了@William Falcon提供的链接,它实现这个“单例类”非常简单,工作非常完美,正如所描述的那样,没有任何复杂之处。再次感谢
 //Access from any file
 extern int gSomeGlobal;
 int myValue = gSomeGlobal;

 NSLog(@"%i",myValue);  // prints 5