我在全局nsobject类中声明了一个变量和一些方法,比如
@interface classGlobal : NSObject {
NSString *myGuid;
}
@property(nonatomic,assign)NSString *myGuid;
我在.m类中合成。但是当我尝试在同一个类(classGlobal.m)中访问myGuid变量时,它会显示错误“在类方法中访问的实例变量'myGuid'”。 所以请建议我如何解决这个问题。
答案 0 :(得分:3)
这意味着无法从类方法访问实例变量。使用+而不是 - 来声明类方法。如果您需要使用全局变量,我建议您查看this问题,该问题可以很好地解答。这是another one。
答案 1 :(得分:1)
编译器抱怨说,您在范围内使用myGuid
,无法访问/定义该范围。 myGuid
部分中interface
的声明不定义全局变量,但实例成员变量。如果您需要一个全局变量(例如,因为您必须从使用+
而不是-
声明的类方法访问它),请在.m
文件中照常声明:
MyClass.m:
static NSString* myGuid = nil;
+ (void) someClassMethod {
if( myGuid == nil ) ...
}