我的项目有一个目标c类MockupModel
,它为iOS XCode项目提供模型信息,以帮助为App商店创建屏幕截图。
该项目有两个目标。模型目标包括MockupModel.m
。
我希望主要目标(针对实际应用)不包括MockupModel.m
,以便不会意外地将其链接到发货应用。
但是,当我使用文件的属性检查器从项目中排除MockupModel.m
时,合理地说,项目无法链接。我收到错误抱怨MockupModel
的功能缺失。
是否有某种方法可以将MockupModel
声明为可选项,以便链接器不会担心它是否未实现?在运行时,我的代码会检查NSClassFromString(@"MockupModel")
或[MockupModel class]
是否可用。
感谢。
答案 0 :(得分:1)
在非主目标中,添加用户定义的预处理程序指令。你可以称之为USE_MOCKUP_MODEL
。从主目标的文件列表中删除MockupModel.h和MockupModel.m,并使用以下内容包围引用MockupModel(或导入)的任何源:
#ifdef USE_MOCKUP_MODEL
//source
#endif
示例:
#ifdef USE_MOCKUP_MODEL
#import "MockupModel.h"
#endif
Model *myModel = nil;
#ifdef USE_MOCKUP_MODEL
myModel = [MockupModel new];
#else
myModel = [RealModel new];
#endif