0

我的项目有一个 Objective-C 类MockupModel,它为 iOS Xcode 项目提供模型信息,以帮助为 App Store 创建屏幕截图。

该项目有两个目标。样机目标包括MockupModel.m.

我希望包括主要目标(对于实际应用程序),MockupModel.m以免它意外链接到运输应用程序。

但是,当我使用文件的属性检查器从项目中排除时MockupModel.m,足够合理,项目无法链接。我收到一个错误,抱怨MockupModel缺少 的功能。

有什么方法可以声明MockupModel为可选,这样链接器就不用担心它是否没有实现?在运行时,我的代码将检查它是否可以与NSClassFromString(@"MockupModel")或 一起使用[MockupModel class]

4

1 回答 1

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
于 2014-10-09T14:02:33.690 回答