在nsobject类中声明全局变量(目标C)

时间:2010-07-27 08:31:11

标签: iphone objective-c variables global-variables

我在全局nsobject类中声明了一个变量和一些方法,比如

@interface classGlobal : NSObject {
    NSString *myGuid;
}

@property(nonatomic,assign)NSString *myGuid;

我在.m类中合成。但是当我尝试在同一个类(classGlobal.m)中访问myGuid变量时,它会显示错误“在类方法中访问的实例变量'myGuid'”。 所以请建议我如何解决这个问题。

2 个答案:

答案 0 :(得分:3)

这意味着无法从类方法访问实例变量。使用+而不是 - 来声明类方法。如果您需要使用全局变量,我建议您查看this问题,该问题可以很好地解答。这是another one

答案 1 :(得分:1)

编译器抱怨说,您在范围内使用myGuid,无法访问/定义该范围。 myGuid部分中interface的声明定义全局变量,但实例成员变量。如果您需要一个全局变量(例如,因为您必须从使用+而不是-声明的类方法访问它),请在.m文件中照常声明:

MyClass.m:

    static NSString* myGuid = nil;

    + (void) someClassMethod {
        if( myGuid == nil ) ...
    }