【发布时间】:2013-01-28 20:27:43
【问题描述】:
我在所有应用程序中都使用了一个库,其中包含通用代码。我将它编译为 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 头文件,其值可以在该项目中编辑并由库使用?
【问题讨论】:
标签: objective-c c frameworks forward-declaration