Ios 基于xcode方案的include头

Ios 基于xcode方案的include头,ios,objective-c,xcode,xcode5,Ios,Objective C,Xcode,Xcode5,我的项目使用Settings.h来存储常见的配置设置,如服务器url等。我的任务是根据这段代码创建一个新的应用程序,其中只有几个参数不同,如服务器url、图标等 我的xcode工作区中有一个新的目标。我在单独的文件夹中有2个设置.h,如 awesomeProject/Settings/Settings.h oldProject/Settings/Settings.h 设置.h包含在项目中的一些地方(未通过.pch加载)。我已尝试为这两个目标设置标题搜索路径,但没有成功(正如在编译awesome

我的项目使用Settings.h来存储常见的配置设置,如服务器url等。我的任务是根据这段代码创建一个新的应用程序,其中只有几个参数不同,如服务器url、图标等

我的xcode工作区中有一个新的目标。我在单独的文件夹中有2个设置.h,如

awesomeProject/Settings/Settings.h
oldProject/Settings/Settings.h
设置.h包含在项目中的一些地方(未通过.pch加载)。我已尝试为这两个目标设置标题搜索路径,但没有成功(正如在编译awesomeProject目标中包含oldProject的Settings.h)


是否有方法#基于目标包含Settings.h而不使用喷洒#ifdef#endif构造?

如果我理解正确,并且您有需要包含不同头文件的单独目标,那么您应该能够以不同方式设置“头搜索路径”并获得正确的文件。你说你试过了,但你可能想试着做一个干净完整的重建

我会尝试利用预处理器来实现您的目标。一个选项是为每个目标宏设置定义内建设置,根据目标将是“awesomeProject/settings/settings.H”或“oldProject/settings/settings.H”。然后在源代码中,您可以
#包括设置_H
。当然,您可能需要调整标题搜索路径才能找到每个标题

老实说,
#include SETTINGS_H
对我来说有点难看,所以我更喜欢另一种方法。您可以保留单个“Settings.h”文件,但对常量值使用宏。例如,在“Settings.m”中

并在目标生成设置中添加GCC_预处理器_定义

SERVER_URL='@"http://stackoverflow.com"'

您可能需要使用引号来达到预期效果。为了更好地组织项目,您可以将宏的定义移动到.xcconfig文件中,并为每个目标保留单独的.xcconfig文件。

是否尝试在一个项目中使用两个名为
Settings.h
的单独文件?是的,两个名称相同但位于不同文件夹中的头文件。我在构建项目之前尝试过清理,但没有效果。然后,我尝试从组织者中删除“派生数据”,这种方法奏效了。看起来xcode将加载编译时遇到的第一个头文件。例如,如果我在旧项目上重新安排新项目,无论我构建的目标是什么(它们都有自定义的头搜索路径),都会加载第一组头文件。不确定该怎么做。“标题搜索路径”是正确的选择。除此之外,我还需要设置一个名为“USE_HEADERMAP”的“用户定义变量”,其值为“NO”,如下所述。注意:这样做的副作用是,您必须将具有相关头文件的所有文件夹添加到“头搜索路径”中。
SERVER_URL='@"http://stackoverflow.com"'