iOS-Universal-Framework's
页面:https://github.com/kstenerud/iOS-Universal-Framework
它是一个XCode项目模板,用于为iOS构建通用(arm6,arm7和模拟器)框架。
我使用此模板构建了我的框架,但是我遇到了问题,我已将所有类打包在模板中,包括.h文件#define kCOMPANYID 2
中的宏定义Macro.h
,但是问题是...... kCOMPANYID必须可以由使用我的框架的人修改,因此kCOMPANYID
必须在框架外定义,但问题是,我的框架中的某些类必须使用{{1所以这是冲突,我不知道该怎么办,请帮助我,谢谢。
答案 0 :(得分:0)
你应该尽可能避免#define
一种方法是为它设置一个setter / getter函数
e.g。
// public header file
void SetCompanyId(int value);
// int GetCompanyId(); // it can be in public header or private header
// some .m or .c or .cpp file
static int companyId;
int GetCompanyId() { return copanyId; }
void SetCompanyId(int value) { companyId = value; }
或者如果用户提供了id,只需将其设为全局变量即可。您可以向其添加const
,以便价值无法更改
// header file in your framework
extern const int kCompanyId;
// some implementation file in user code
const int kCompanyId = 2;
然后用户必须提供公司ID,否则会出现链接器错误