xcode4工作空间中的两个项目(#import failure)

Eri*_*rik 11 workspace import header xcode4

我真的很难在xcode 4中使用它.

我有一个项目,我将在许多应用程序(网络)中重用,所以我创建一个工作区并添加我的两个项目.到目前为止一直很好....这是它失败的地方..

#import "JSONRequest.h"
Run Code Online (Sandbox Code Playgroud)

没有明显的理由.它会自动完成头文件的文件名.我认为这与"方案"(xcode 4中的新功能)有关,所以我试图在构建阶段添加我的网络目标.改变它们的顺序...在管理方案下设置"共享"..我已经尝试了很多不同的设置组合而没有任何成功..而错误信息是获取的是:

JSONRequest.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果您有线索,请告诉我.

bob*_*obc 10

您可以将要引用的项目的标题或源文件夹添加到标题搜索路径.

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

您可以在apple developer forums中找到有关此问题的更多信息.祝你好运.


Jos*_*zzi 6

你真的想做什么?

如果您有一个完整的Xcode项目,您打算在不同的产品之间共享,这通常表明您的项目构建了一个或多个目标(例如框架等).因此,您的"共享"项目应该能够自己构建框架,而不管它包含在哪个工作区中,对吧?

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

所以你的问题可能只是知道Xcode在哪里寻找文件.由于工作空间中的项目共享该工作空间的构建文件夹,因此它们可以全部"看到"彼此.但是在框架的情况下,按文件名进行简单导入不会削减它.你需要:

#import <MyNetworkingFramework/MyNetworkingFramework.h>
Run Code Online (Sandbox Code Playgroud)

由于您包含特定标头(JSONRequest.h)(必须是框架目标的复制标头构建阶段中的公共标头之一),因此您需要:

#import <MyNetworkingFramework/JSONRequest.h>
Run Code Online (Sandbox Code Playgroud)

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