在Cocoa中有* your * constant / static变量有什么有用的命名约定吗?

时间:2010-05-26 13:51:13

标签: objective-c cocoa coding-style

我知道常量以k前缀开头,但是有没有人有自己的常量前缀,所以他们可以轻松地完成常量,而不是Apple的?

由于我的公司名称,我为我的班级使用了三个字母的前缀,让我们假装它是OMG。我尝试用omgkConstantName为我的常量添加前缀,但这并不令人满意。我也玩弄了kkok o 来自OMG。)或者我应该做kOMGConstantName,这似乎更多Cocoa-ish?

快速找到自己的常量似乎非常有用,就像你想要进入自己的类一样。有没有人这样做?可可风格可怕吗?

另外,静态变量是否有一个很好的命名约定,你只能在一个类中使用,比如JSON字典的键?他们应该有k吗?它们应该从大写开始,还是遵循正常的案例约定?

// Static Variables
static NSString *searchTextKey = @"searchText";
static NSString *searchResultsKey = @"searchResults";
(more)

4 个答案:

答案 0 :(得分:6)

我尝试始终使用kJAFoo(或kXXFoo,其中XX是项目前缀)作为我的公共常量 - 尤其是导出符号的实际const - 但通常使用{{ 1}}用于实现文件中的枚举或kFoo s。同样,我使用static const表示静态变量,sFoo用于我使用导出全局变量的极少数情况。

这些情况都不如命名空间类(以及导入类中的类别中的方法)那么重要,因为大多数类型的冲突将在编译或链接时而不是运行时出现。

答案 1 :(得分:6)

Apple的Coding Guidelines for Cocoa建议对枚举使用与函数相同的命名约定。按照这个建议, OMGConstantName 是正确的。

答案 2 :(得分:2)

我通常会使常量Pascal大小写。

如果您选择遵循在所有内容上添加前缀的'命名空间约定',那么您也可以使用它。

所以我通常会这样做

static NSString *SearchTextKey = @"searchText";

您可以选择将其命名为(尽管您的前缀为ZK)

static NSString *ZKSearchTextKey = @"searchText";

一般情况下,我只根据谷歌的推荐(或者至少是在我的命名惯例确定时),在多个项目中使用了命名空间。

最重要的是,无论你采取何种惯例。坚持并保持一致(至少在给定的项目中)。在某个时刻,猜测自己只是浪费时间。

答案 3 :(得分:1)

我通常遵循与类相同的前缀/大小写约定,因此在Cocoa有NSTouchPhaseBegan的地方我可能有GLTuneNameKey

相关问题