如何在iOS Objective-C代码中使用名称空间?

如何在iOS Objective-C代码中使用名称空间?

问题描述:

我正在写一个iOS应用程序,“最佳韩国”。我的组织名称是“Srsly.co”。我将编写可用于我的应用程序的可重复使用的“新闻”库。如何在iOS Objective-C代码中使用名称空间?

每个iOS应用程序都将在.h文件中拥有自己的应用程序范围内的常量,并且库代码也将在头文件中具有其常量。我也会为每个这些项目进行测试。

这是做事的标准方式吗?

在Ruby,Python和Java等,我会成立了命名空间沿着这些线路:

co.srsly.bestkorea 
co.srsly.bestkorea.test 
co.srsly.newslib 
co.srsly.newslib.test 

据我所看到的,Objective-C的模式是每个开发者选择两种或三个大写字母,并将每个类名称加上前缀。

所以在我的情况,我想我会选择BK作为应用程序的类名前缀和NL的新闻LIB代码?我在想这个方法吗?

编辑:我正在考虑根本没有在我的应用程序代码中使用命名空间,如讨论here

+2

是的,这听起来很合理。 – abellina 2013-03-21 03:40:10

你说的没错,Objective-C没有内置的对命名空间的支持,常见的解决方案是在每个类上使用大写前缀。请注意,苹果has stated这两个字母的前缀是保留供他们使用的,所以你应该为你自己的类使用三个字母前缀。否则,你建议的方法是正常的事情。

+8

+1两个字母的前缀信息 – borrrden 2013-03-21 03:45:09

+2

对我来说也是新闻。 – abellina 2013-03-21 03:45:34

+0

啊哈,所以按照该页面上的示例,我可以使用** SBK **作为应用程序代码前缀。 – Dogweather 2013-03-21 03:49:58

Objective-C中没有NameSpace,就像您期待的Java一样。

Objective-C使用像NS,UI,CG,CF等类前缀来安全地移除名称空间冲突。

而且最好为你的班级使用3字母前缀。

您应该阅读:What is the best way to solve an Objective-C namespace collision?