在Objective-C中,如何声明/使用全局变量?

时间:2011-02-24 00:19:38

标签: iphone objective-c global-variables

我一直在研究这个问题,我似乎无法找到这个问题的答案。我对iPhone编程很新,很抱歉,如果这是一个愚蠢的问题。如果有人发布了具体的代码来展示如何做到这一点,那将非常有帮助。

3 个答案:

答案 0 :(得分:9)

Objective-C是C的超集,所以只需按C方式执行:

int globalX = 100;

头文件:

extern int globalX;

答案 1 :(得分:2)

你完全按照你在C中的方式去做。这是一个简单的例子:

int myGlobal = 3;

答案 2 :(得分:1)

希望这个答案更明确。就我而言,我想创建一个全局类,但是:

我不想要:

[GlobalResource shareInstance].bgrMenuFileName;

我想:

R.bgrMenuFileName

做这样的事! 在GlobalResource.h文件中:

@class GlobalResource;

extern GlobalResource * R;

@interface GlobalResource: NSObject
+ (void) loadGlobalResources;
@end

在GlobalResource.m文件中:

// you must redeclare R 
GlobalResource *R;
// then init it

@implementation GlobalResouce
+ (void) loadGlobalResources
{
     R = [[GlobalResource alloc] init];
}
- (id)init
{
     self = [super init];
     if (self) {
          // your init
     }
     return self;
}
@end

然后,在您的应用加载时调用loadGlobalResources:

[GlobalResource loadGlobalResources];

并导入到Prefix.pch,以便在项目的任何位置使用R.

#import "GlobalResource.h"

使用它:

CCSprite *s = [CCSprite spriteWithFile:R.bgrMenuFileName];
//...