我有一个在所有应用程序中都使用的库,其中包含通用代码。我将它编译为 Mac 的“框架”和 iOS 的“静态库”。
我希望库能够引用由最终包含项目定义的变量。
例如,该库有一个功能:
void printAppID(void);
void printAppID(void) {
NSLog(@"App ID is: %@", kAppID);
}
自然,如果未声明此变量,库将抛出警告,因此我将其声明为:
NSString *kAppID;
而且由于kAppID
库事先不知道(每个项目都不同),最终项目会执行以下操作:
NSString *kAppID = @"ABCD1234"
这会引发编译器错误:
建筑的未定义符号
我尝试过使用extern
,或将其设为函数,或#define
,但无法破解。
在库中声明变量并在其他地方定义它的规范方法是什么?我认为这在 C 中和在 Obj-C 中是一样的。
编辑:更普遍的情况
如何拥有一个包含在应用程序项目中的已编译静态库以及一个 Constants.h 头文件,其值可以在该项目中编辑并由库使用?