【问题标题】:declare global variable in nsobject class (objective C)在 nsobject 类中声明全局变量(目标 C)
【发布时间】:2010-07-27 08:31:11
【问题描述】:
我在全局 nsobject 类中声明了一个变量和一些方法,例如
@interface classGlobal : NSObject {
NSString *myGuid;
}
@property(nonatomic,assign)NSString *myGuid;
我在 .m 类中合成。但是当我尝试访问同一类(classGlobal.m)中的 myGuid 变量时,它会显示错误“在类方法中访问的实例变量'myGuid'”。
所以请建议我如何解决这个问题。
【问题讨论】:
标签:
iphone
objective-c
variables
global-variables
【解决方案1】:
这意味着不能从类方法中访问实例变量。使用 + 而不是 - 来声明类方法。如果您需要使用全局变量,我建议您查看this 问题,该问题的答案非常好。这里是another one。
【解决方案2】:
编译器抱怨说你在一个范围内使用myGuid,它是不可访问/定义的。 interface 部分中的myGuid 声明不是定义了一个全局变量,而是一个实例成员变量。如果您需要一个全局变量(例如,因为您必须从使用 + 而不是 - 声明的类方法访问它),请照常在您的 .m 文件中声明:
MyClass.m:
static NSString* myGuid = nil;
+ (void) someClassMethod {
if( myGuid == nil ) ...
}