我有一个代码可以在运行的第一个实例中保存一些数据。但是,此类的第二个实例调用不同的方法,而是需要从第一个实例打印出这些数据。我尝试过extern和static,两者都没有用。这可能吗?
code.h:
extern NSString GlobalID @interface ... @end
code.m:
#import code.h
@implementation NSString *GlobalID;
-dostuff1: {GlobalID=@"text"}
-dostuff2: {NSLog(@"%@",GlobalID)}
@end
答案 0 :(得分:1)
您正在寻找的不是实例变量。你想要一个全局类变量。那些可以像这样创建:
// code.m
#import "code.h"
static NSString *global_string = nil;
@implementation code
...
@end
然后你就可以从班级的任何地方编辑global_string
。
关键字static
意味着该变量只创建一次,并将在实例和其他所有内容之间保留它的值。如果要在不同模块中引用全局(非静态)变量,则使用关键字extern
。请注意,static
变量不能extern
,反之亦然,原因很明显。