我正在Xcode 4.6.2中开发一个iPhone应用程序,该应用程序只有一个目标,并且我注意到某些重要文件不是目标的成员。我的自定义头文件都不是目标成员的一部分,我的Info.plist,Prefix头或产品“MyApp.app”也不是。

以我理解目标的方式,这些文件当然需要成为目标的成员。

我的问题是:为什么这些文件不是我的目标的成员?

在四处搜寻之后,类似的问题已经产生了一些见识,但并未完全解决该问题。我收集到的见解是:

  • 头文件不是您目标的成员,因为它们在“复制头”构建阶段中被链接。
  • 听上去很合理,但是我没有复制标题构建阶段
  • Info.plist和Prefix.pch不是目标的成员,因为Info.plist在“Copy Bundle Resources”构建阶段中被链接,并且Info.plist包含一个指向前缀 header 的键/值条目(前缀.pch)
  • 我不是很肯定这实际上是如何工作的
  • 最佳答案

    头文件是其他源文件引用的文件,以便它们知道类的接口(interface)是什么。不需要将它们作为二进制文件本身的一部分,因此不需要将它们包含在最终产品中。
    Info.plist是一种特殊情况,因为它定义了应用程序包本身,因此需要单独处理。

    一般来说,您希望文件在以下情况下成为目标的成员:

  • 可执行文件的一部分(例如,实现(.m)文件或库),或
  • 作为文件包含在应用程序捆绑包中(例如图像)。

  • 如果仅将文件用作构建过程的一部分,并且在运行时不需要它们,则不需要文件成为目标的成员。通常,这是任何类型的头文件,包括预编译的头(.pch)。

    10-07 19:49
    查看更多