【问题标题】: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 ) ...
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        • 1970-01-01
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 2012-03-30
        • 1970-01-01
        相关资源
        最近更新 更多