我知道常量以k
前缀开头,但是有没有人有自己的常量前缀,所以他们可以轻松地完成常量,而不是Apple的?
由于我的公司名称,我为我的班级使用了三个字母的前缀,让我们假装它是OMG
。我尝试用omgkConstantName
为我的常量添加前缀,但这并不令人满意。我也玩弄了kk
或ok
( o 来自OMG。)或者我应该做kOMGConstantName,这似乎更多Cocoa-ish?
快速找到自己的常量似乎非常有用,就像你想要进入自己的类一样。有没有人这样做?可可风格可怕吗?
另外,静态变量是否有一个很好的命名约定,你只能在一个类中使用,比如JSON字典的键?他们应该有k
吗?它们应该从大写开始,还是遵循正常的案例约定?
// Static Variables
static NSString *searchTextKey = @"searchText";
static NSString *searchResultsKey = @"searchResults";
(more)
答案 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
。