如何在iphone sdk中使用命名空间

时间:2010-08-23 23:08:59

标签: iphone namespaces

可能我是傻瓜,但我无法弄清楚如何在iphone sdk中使用命名空间。请有人帮助我。基本上我需要知道在文件中定义命名空间的位置,我假设在标题中,但在哪里?我一直都有错误。

6 个答案:

答案 0 :(得分:3)

Objective-C没有名称空间。

答案 1 :(得分:3)

正如Daniel A.所说,Objective-C中没有名称空间。

通常的做法 - Apple的推荐 - 你的框架/包的前缀是3个字母代码。 Apple使用 UI Kit, NS String等等。

所以你可以使用DTHCoolClass等。

答案 2 :(得分:1)

Objective-C没有名称空间。人们所做的是在代码前加上一些大写字母。像缩写或产品名称缩写。就个人而言,我讨厌它,我使用SignUpViewController之类的普通名称而不是SMASignUpViewController

在我看来,如果应用程序开发人员删除了前缀,那么世界将是一个更好的地方。我对使用它的图书馆感到满意。

答案 3 :(得分:1)

正如其他人所提到的,Objective-C没有名称空间。 Apple建议您在类名前加上2或3个字母,表示项目,框架或开发人员。

在实践中,你是否应该使用前缀取决于你所讨论的课程类型,以及如何使用它。

我为所有模型和实用程序类添加前缀,因为名称可能与Apple(或第三方)库冲突(例如使用NFResourceManager而不是ResourceManagerNFRecord而不是{{ 1}})。这些类可能会在未来的某个阶段被提取到另一个项目框架中,因此在它们前面可以使这些名称保持明确。

我几乎从不为视图控制器加前缀,除非我认为我很有可能在其他地方使用它,或者想要分享它。大多数VC都不会在其他地方使用,所以前缀几乎没有什么好处(而且你不太可能从包含VC的第三方库导入代码)。

对于大多数视图类,我使用它们作为前缀,除非它特定于特定项目/应用程序,在这种情况下没有什么意义。

答案 4 :(得分:0)

如果您尝试在obj-C文件中使用命名空间C ++代码,则需要重命名源文件以告知Xcode使用C ++编译器。将相关的.m文件重命名为.mm,您应该能够使用C ++命名空间。

答案 5 :(得分:0)

我有点愚蠢,我试图在错误的地方创建命名空间