我正试图找到一种方法来轻松切换我们的“模拟”数据服务和我们的实时数据服务。基本上,我们将拥有带有真实Web服务的实时服务器,但无论出于何种原因,开发人员可能希望从静态文件(文件URL)加载数据。
我想通过创建覆盖获取数据的方法的类别来解决这个问题,从而保持原始代码不变(它没有“模拟”数据的概念)。我不想用#ifdef
丢弃我的代码。
我可以在每个包含类别的文件的最开头放一个#ifdef,我可以在配置设置中设置自定义标志,但我宁愿有办法根据需要包含或排除文件在配置上。那可能吗?你是如何解决这个问题的?
答案 0 :(得分:33)
请参阅http://lists.apple.com/archives/xcode-users/2009/Jun/msg00153.html
诀窍是在要从中排除文件的配置中定义EXCLUDED_SOURCE_FILE_NAMES,并将该自定义构建设置的值设置为文件名列表(或与之匹配的模式,仅限那些文件名) )。
答案 1 :(得分:1)
我建议创建两个目标,其中一个包含模拟类别,另一个不包含模拟类别。
如果要测试,只需构建包含模拟类别的目标。其他一切都可以保持一致。
答案 2 :(得分:1)
如果您想添加文件但不想编译它。转到(针对所有目标)项目>构建阶段>编译源代码并取出您不想编译的文件。