4

我在 Objective-C 中使用适当的命名约定定义常量,但是在互联网上进行了一些搜索之后,我发现了三种不同的命名约定来定义常量。下面给出的那些。

NSString *const kModel_userID;
NSString *const k_model_user_id;
NSString *const kUserId;

请检查这些并帮助我找出objective-C中常量的最佳约定方式。如果您喜欢任何约定,请给我正当理由。另外,如果您有任何其他约定,也请分享。谢谢

4

1 回答 1

7

前缀 + 范围/类 + 标识符/详细信息 + 后缀/常量类型。

省略不适用的。

例子:

// A NSNotification name, pertaining to NSApplication
NSApplicationWillBecomeActiveNotification
PrClass      Identifier      SuffxType

非常惯用且易于理解,IMO ;)

您对枚举使用类似的形式:

// enum NSApplicationDelegateReply
NSApplicationDelegateReplySuccess
PrClass      Enum         Identifier

我还应该注意,您应该为您的 API 选择具有 3 个或更多字符的前缀,以减少与 Apple 或其他 API 冲突的可能性。

k前缀是较旧的约定。您会在 OS X 和 iOS 上的许多C API 中找到它,例如 Core* 框架。如今,对于 Objective-C API 来说,这并不是很惯用。它在一些第三方项目中使用,但大写前缀约定对于 Objective-C 来说是最容易识别的。即使是k前缀常量也使用标识符来“命名空间”它们的 API,例如kCTLineTruncationStart. 聪明的。

于 2013-09-30T10:46:11.997 回答