【发布时间】:2012-01-08 12:17:03
【问题描述】:
我正在寻找 Xcode 中目标成员资格的示例。我对它的确切含义有点困惑。 例如,我有两个不同的目标成员。 myApp 和 myAppTests。 如果我指定一个文件(比如 myAppFile.h)作为 myAppTests 的一部分而不是 myApp 的一部分,这意味着什么? 当我的应用构建和运行时会发生什么?
谢谢
【问题讨论】:
我正在寻找 Xcode 中目标成员资格的示例。我对它的确切含义有点困惑。 例如,我有两个不同的目标成员。 myApp 和 myAppTests。 如果我指定一个文件(比如 myAppFile.h)作为 myAppTests 的一部分而不是 myApp 的一部分,这意味着什么? 当我的应用构建和运行时会发生什么?
谢谢
【问题讨论】:
通常头文件不是目标的成员。使实现文件成为目标的成员会告诉 Xcode 在构建目标时编译该文件。在您的示例中,Xcode 在您构建 myAppTests 目标时编译文件 myAppFile.m 而不是在您构建 myApp 目标时。
当您有一个应用程序目标和一个单元测试目标时,您的应用程序的实现文件应该是应用程序目标的成员。您的单元测试类的实现文件应该是单元测试目标的成员。
【讨论】:
目标会员
当您向Target Membership 添加一个类时,它将成为您的目标和二进制 的一部分。这是Build Phases的反映。
案例 1: 开发过程中的一般使用,例如在不同目标之间共享代码
案例 2: 测试
案例 3: 例如,当您创建一个库或框架时,您应该创建一个包含伞头的 .modulemap[About]。保护伞中的每个导入标头都应具有public 目标成员资格。
您可以通过以下方式设置可见性:
`Target Membership` in the `Inspector` tab
//or
Project Settings -> Target -> Build Phases
.h -> Headers
.m, .swift -> Compile Sources
.h or umbrella.h and .modulemap -> Copy Files
【讨论】: