如何在Objective-C中命名常量?

hpi*_*que 38 const constants objective-c naming-conventions extern

Objective-C中常量的命名约定是什么(或者最常用的命名方式)?

extern常量有不同的标准吗?

我见过的一些款式:

NSString* const kPreferenceFirstRun = @"FirstRun";

// Replace "XY" by a prefix representing your company, project or module
NSString* const XYPreferenceFirstRun = @"FirstRun"; 
Run Code Online (Sandbox Code Playgroud)

hpi*_*que 39

经过一番谷歌搜索后,我找到了Cocoa官方编码指南.

总结一下:

  • 在ALL-CAPS中以两个或三个字母的前缀开头
  • 在UpperCamelCase休息
  • extern常量的标准相同

我同意itaiferber的说法,k前缀样式更清晰,对自动完成也更有用.知道这种风格是否比官方指南更受欢迎会很有趣.


hex*_*mal 5

在我看来,最好的做法是以大写字母命名常量.但可可核心开发人员似乎并不赞同我的意见))他们使用CamelCase作为常量

  • 也许Cocoa核心开发人员不喜欢他们的代码SHOUTING AT THEM. (40认同)
  • obj-c中的所有大写常量都不是一个好主意,因为它通常是为#defines保留的 (7认同)
  • 全大写技术在C中使用,因为它使宏(不是常量,宏)脱颖而出.因为宏在C中是如此危险的构造,这是一种非常有用的技术,因为它会吸引你注意可能的麻烦点.不幸的是,这种惯例被错误地复制到语言中,这些语言具有内置于语言本身的完美的常量定义机制. (3认同)