XCode:复制标题:公共还是私有还是项目?

我正在构build一个Cocoa Touch静态库。 我应该如何决定是否将头文件复制为公共,私人或项目?

公开:界面已经完成并且意味着被你的产品的客户使用。 公共标题作为可读源代码不受限制地包含在产品中。

私人:界面不是为你的客户devise的,也可能处于开发的早期阶段。 产品中包含一个私人标题,但标记为“私人”。 因此,所有客户都可以看到符号,但客户应该明白,他们不应该使用它们。

项目:该接口仅供当前项目中的实施文件使用。 项目标题不包含在目标中,目标代码除外。 这些符号对客户来说根本不可见,只有你自己。

来源: Xcode开发人员库>工具和语言> IDEs>项目编辑器帮助>设置头文件的可见性

兰迪的回答很好,给你所有的相关背景。 我想添加一些信息来帮助你基于你如何期待你的图书馆将被使用。

项目:如果你正在分发你的项目,并希望用户将自己的项目作为一个子项目,你应该确保你的标题被标记为“项目”。 不这样做会导致这样的问题: Xcode 4归档版本未指定

请注意,这适用于每个子项目…包括子项目的子项目,recursion。

PUBLIC:如果你希望你的库的用户只与你的对象链接(而不是你的原始项目),确保你的头被标记为“公共”(仅用于他们需要参考的头)。