-1

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

代码.h:

extern NSString GlobalID
@interface ...
@end

代码.m:

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

    @end
4

1 回答 1

1

您要查找的不是实例变量。你想要一个全局类变量。可以这样创建:

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

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

然后你可以global_string在课堂上的任何地方进行编辑。

关键字static意味着该变量只创建一次,并且将在实例之间以及几乎所有其他内容之间保留它的值。extern当您想要引用不同模块中的全局(非静态)变量时,使用关键字。请注意,由于显而易见的原因,static变量不能是extern,反之亦然。

于 2012-07-29T05:47:41.580 回答