我有一个静态库,其中包含一些常量,例如:
// constants.h
NSString* const KDefaultProtocol;
// constants.m
NSString* const kDefaultProtocol = @"https";
// OtherCode.m
NSString *s = kDefaultProtocol;
当我运行链接到库的应用程序时,kDefaultProtocol的值为nil。这是为什么?
(constants.m包含在库编译源代码部分中)。
答案 0 :(得分:5)
// constants.h
NSString* const KDefaultProtocol;
这个不正确。你的意思是:
// constants.h
extern NSString* const KDefaultProtocol;
你没有收到警告的原因是因为你使用了不匹配的K
的情况(提出了OtherCode.m
甚至编译的问题;我怀疑这是不完全是有问题的代码。)
答案 1 :(得分:0)
试一试 - >
// constants.h
static NSString * const KDefaultProtocol = @"https";