如何正确地将现有源代码文件添加到我的Xcode项目中?

时间:2010-05-21 15:42:21

标签: iphone xcode

我是iPhone开发的新手,我还熟悉Mac开发环境,包括Xcode。我想在我的iPhone项目中添加一些第三方代码,但是当我将“现有文件”添加到我的Xcode项目时,我会看到一个对话框,其中包含太多我不理解的选项,并且这样,我的项目不起作用。当我#import headerfilename.h时,我收到的内容错误为headerfilename.h: No such file or directory

alt text http://joecrotchett.com/images/misc/fileadd.jpg

  1. 任何人都可以向我解释所有这些选项的含义或给我链接到一些可以的文档吗?我很难在Apple的文档中找到任何东西。
  2. 我想选择哪些选项将现有源代码文件添加到我的Xcode项目中?我应该注意,我想要添加的源代码文件位于我的项目/ Classes / frameworkname /目录中。
  3. 添加之后,我是否需要在项目设置中的任何地方引用这个新的代码目录(即某种头文件目录变量)?
  4. 非常感谢!

    更新:我在apple dev论坛上找到了以下答案/回复非常有用并帮助我解决了我的问题......

      

    简化:    - 如果不检查复制选项,文件将保留在原位。    - 如果您检查它,它将被复制到您的项目文件夹中第一种情况   (你似乎在做什么)你需要的   告诉编译器那个头   文件在另一个目录中:    - 项目信息 - >构建 - >搜索路径 - >用户标题搜索路径:添加   你拍摄的目录   头文件希望这会有所帮助


      

    你发现了最令人困惑的事情   永远出来的对话框   库比蒂诺。六年的Xcode,和   这件事仍然是一个谜   对我来说。为了达到这个目的,我不得不这样做   做许多测试项目尝试和   逆向工程这件事的作用。   “复制”框表示它将复制   现在的文件,进入   该项目。如果没有这个框   检查,然后它只是引用那些   构建期间的文件并复制它们   因为他们在那个时候。对于来源   代码,您需要选中复制框   “相对于”是一个完全神秘的东西   对我而言,我无法帮助你。   我通常会离开它   已经设定。这是否意味着相对于   他们在磁盘上的位置,或者   安排在Xcode或在   束?谁知道。最后2个电台   按钮SEEM意味着它会   要么重新创建文件夹结构   您要添加的文件夹,或者只是   在Xcode中放置“假”文件夹   到真正的文件夹。这可能是   你的问题 - 你正在添加来源   代码不是顶级的,   当它找到它时,确实如此   不重新创建层次结构。其他   可以提供更好的方式,希望,   但我要做的就是全部   源于一个文件夹并添加,   使用复制框。然后在Xcode中你   可以做任何虚假文件夹你   想要并放入源文件名   那些假文件夹。

4 个答案:

答案 0 :(得分:4)

这是来自Xcode用户指南:

  

“项目导航器显示项目,组,文件夹和文件:

     

工作区窗口中的项目是最高级别   项目导航器中的层次结构。打开项目   显示三角形以查看组中的组,文件夹和文件   项目。选择项目以显示项目编辑器   可以查看和编辑项目和目标设置。

     

组在项目导航器中显示为黄色文件夹图标。该   group不代表磁盘上的文件夹。虽然你可以组织   您在Xcode中的项目反映了磁盘上文件的组织,   将文件移入和移出组不会影响文件的内容   磁盘上的文件夹,以及将磁盘上的文件移入和移出文件夹   不影响项目导航器中组的内容。

     

文件夹是对磁盘上文件夹的引用,并显示在项目中   导航器作为蓝色文件夹图标。中的文件夹内容   项目导航器反映磁盘上文件夹的内容。它的   但是,重要的是要注意文件夹中出现的文件   项目导航器中的图标不是您项目的一部分,除非您   将它们明确地添加到项目中(在这种情况下它们会出现   直接在项目下或组中,以及在文件夹中)。   您可以查看和编辑文件夹中的文件,但可以在和中移动文件   在文件夹之外,您必须使用Finder。

     

项目导航器中的文件是对磁盘上文件的引用。“

答案 1 :(得分:2)

我认为通常默认选项是最好的选项。如果要添加到某个组,可以勾选“将项目复制到目标组”

添加

后,您无需更改任何项目设置

如果您想添加整个框架代码,请选择添加现有框架

答案 2 :(得分:0)

如果要添加Framework Bundle,只需添加一个。 Add -> Existing Frameworks

答案 3 :(得分:0)

  

将项目复制到目标组   文件夹(如果需要)

好吧,只有你想要它才能复制文件。如果您对现有位置感到满意并且不想复制它们,请不要选择它(这就是我所做的)。

  

参考类型:

对我来说完全神秘

  

文字编码

自我解释

  

递归创建任何组   添加文件夹创建文件夹参考   对于任何添加的文件夹

将其保留为默认值,然后以您想要的任何方式组织Xcode项目中的文件夹。

  

添加到目标

如果您为项目添加其他目标,例如对于iPhone与iPad版本,然后没有注意到它默认将文件添加到其中一个(随机?)可能会导致头痛。

另外,请确保在项目设置>中将新的标题目录添加到搜索路径中。构建>搜索路径。我认为这是造成你问题的原因。

希望这会有所帮助,我记得这首先让我感到困惑。