objective-C:如何从同一个类的单独实例访问变量?

时间:2012-07-29 04:51:10

标签: objective-c

我有一个代码可以在运行的第一个实例中保存一些数据。但是,此类的第二个实例调用不同的方法,而是需要从第一个实例打印出这些数据。我尝试过extern和static,两者都没有用。这可能吗?

code.h:

extern NSString GlobalID
@interface ...
@end

code.m:

#import code.h
    @implementation NSString *GlobalID;
    -dostuff1: {GlobalID=@"text"}
    -dostuff2:  {NSLog(@"%@",GlobalID)}

    @end

1 个答案:

答案 0 :(得分:1)

您正在寻找的不是实例变量。你想要一个全局类变量。那些可以像这样创建:

// code.m
#import "code.h"

static NSString *global_string = nil;
@implementation code
...
@end

然后你就可以从班级的任何地方编辑global_string

关键字static意味着该变量只创建一次,并将在实例和其他所有内容之间保留它的值。如果要在不同模块中引用全局(非静态)变量,则使用关键字extern。请注意,static变量不能extern,反之亦然,原因很明显。