在课堂上AI有这样的:
static NSString * const kMyConstant = @"my constant string";
我怎样才能引用这个从B类?
在课堂上AI有这样的:
static NSString * const kMyConstant = @"my constant string";
我怎样才能引用这个从B类?
你应该你的extern字符串中的标题,然后定义在执行字符串。
//ClassA.h
extern NSString * const kMyConstant;
//ClassA.m
NSString * const kMyConstant = @"my constant string";
//ClassB.h/m
#import "ClassA.h"
...
NSLog(@"String Constant: %@", kMyConstant);
您需要删除的static
-即指定kMyConstant
仅在这一个链接的文件可见。
然后,声明(而不是限定 )中的一类的报头中的字符串:
extern NSString * const kMyConstant;
何地,你想用这个字符串导入头。 该extern
声明说,存在一个NSString * const
由名字kMyConstant
其存储在其他地方被创建。
如果静态定义已经在标题中,你需要移动到别处它(通常是执行文件)。 东西只能定义一次,如果你尝试导入定义变量的文件,你会得到一个连接错误。
如果它是静态的,你不能(这是静态的关键字是什么)。
如果你只是把它声明为一个全局变量,不过,你可以这样做:
// ClassA.m
NSString *const str = @"Foo";
// ClassB.m
extern NSString *const str;
NSLog(@"str is: %@", str);