2011-03-11 62 views
11

我真的努力得到这个在Xcode工作4两个项目

我有一个项目,我将在许多应用(网络),再利用,所以我创建工作区并添加我的两个项目。到目前为止好.... 这是它失败..

#import "JSONRequest.h" 

对于没有明显的原因。它会自动完成头文件的文件名。我认为这与“方案”(也是xcode 4中的新增功能)有关,因此我试图在构建阶段添加我的网络目标。改变它们的顺序...设置“共享”下的管理方案。我已经试过的设置,以多种不同的组合没有任何成功。而该错误信息是得到的是:

JSONRequest.h: No such file or directory 

如果你有一个线索,请让我知道。

+0

可能重复的[Xcode 4.2:如何从子项目导入.h文件](http://stackoverflow.com/questions/9501799/xcode-4-2 -how-to-import-h-file-from-subproject) – 2015-05-12 06:32:12

回答

10

您可以将您正在引用的项目的标题或源文件夹添加到标题搜索路径中。

  1. 单击导入JSONRequest.h的目标。
  2. 点击Build Settings。
  3. 在搜索框中输入“标题搜索路径”。
  4. 双击值单元格。
  5. 单击+号。
  6. 设置您要引用的项目的路径。我们假设它叫做JSONlib。该路径相对于引用项目(使用JSONlib的项目)的根目录。例如:../JSONlib/src/headers/或者.h文件所在的位置。
  7. 点击完成。
  8. 清洁,然后建立。

你会在苹果开发者论坛中找到关于这个问题的更多信息。祝你好运。

+0

是的这实际上工作,但我没有得到我的框架类自动完成。 – Erik 2011-03-31 07:57:51

+0

这发生在我身上。我重新启动了Xcode,自动完成再次运行。这绝对是一个错误,因为预期的行为可能是将共享文件夹的路径添加到标题搜索栏。因人而异。 – bobc 2011-03-31 16:08:24

+0

另请参阅http://stackoverflow.com/questions/9370518/xcode-4-2-how-include-one-project-into-another-one(它显示解决方案,以及各种其他烦人的地狱问题包括另一个项目) – AlexChaffee 2013-02-14 15:05:19

6

你真的想做什么?

如果您有一个完整的Xcode项目,您打算在不同的产品之间共享,这通常表明您的项目会构建一个或多个目标(如框架等)。因此,您的“共享”项目应该能够独立构建框架,而不管它包含在哪个工作空间中,对吗?

我们假设它是一个框架。在大多数情况下,Xcode可以通过简单地使用框架将框架产品添加到(假定的)应用程序的链接构建阶段来找出依赖关系。完成。 Xcode应该知道首先构建框架项目的目标,因为它与构建应用程序项目的目标时相关联。

所以你的问题可能只是知道Xcode在哪里寻找文件的问题。由于工作区内的项目共享该工作区的构建文件夹,因此它们都可以“看到”彼此。但是在框架的情况下,通过文件名进行简单导入不会削减它。你需要:

#import <MyNetworkingFramework/MyNetworkingFramework.h> 

既然你包括一个特定的头(JSONRequest.h)(必须是在框架目标的副本头公头一个建立阶段),你需要:

#import <MyNetworkingFramework/JSONRequest.h> 

如果您的“共享”项目不是一个框架,您需要修改您的问题以包含对您的两个项目及其目标的更全面的描述。

+0

嗨。我有关于框架中的标题的类似问题。而不是#include 我只想要#include 。我可以通过HEADER_SEARCH_PATHS来实现这一点,并在框架内部使用Headers符号链接的路径,但这并不理想。有没有其他方法?谢谢! – StinkyCat 2012-08-15 13:46:58

1

这为我工作,

在构建设置 - >头搜索路径 - >添加条目下方

$(SRCROOT) and mark it as recursive.

如果上面没有奏效,你也可以尝试以下方法,

<path-of-other-project> and mark it as recursive.

希望这对你有帮助! (您可能需要清理或重新启动工作区)