我在目标C中有以下代码:
class1.h:
...
extern NSString global;
...
class1.m:
...
NSString *global;
@implementation:
..
-dostuff{
global=@"hi";
}
..
@end
...
class2.m:
#import "class1.h"
...
-printval:{
NSlog(@"%@",global)
}
...
在我调用类1中的方法之后,然后我调用类2中的方法,该方法尝试打印出全局。但这不起作用......我不明白这一点吗?
答案 0 :(得分:0)
这不完全正确。关键字extern
用于告诉编译器在另一个模块(文件)中声明了一个全局(非静态)变量。所以你应该尝试这样的事情。
class1.h:
...
NSString *global = nil;
...
class1.m:
...
extern NSString *global;
@implementation:
..
-dostuff{
global=@"hi";
}
..
@end
...
class2.m:
#import "class1.h"
...
extern NSString *global;
-printval:{
NSlog(@"%@",global)
}
...