我在 Objective-C 中使用适当的命名约定定义常量,但是在互联网上进行了一些搜索之后,我发现了三种不同的命名约定来定义常量。下面给出的那些。
NSString *const kModel_userID;
NSString *const k_model_user_id;
NSString *const kUserId;
请检查这些并帮助我找出objective-C中常量的最佳约定方式。如果您喜欢任何约定,请给我正当理由。另外,如果您有任何其他约定,也请分享。谢谢
我在 Objective-C 中使用适当的命名约定定义常量,但是在互联网上进行了一些搜索之后,我发现了三种不同的命名约定来定义常量。下面给出的那些。
NSString *const kModel_userID;
NSString *const k_model_user_id;
NSString *const kUserId;
请检查这些并帮助我找出objective-C中常量的最佳约定方式。如果您喜欢任何约定,请给我正当理由。另外,如果您有任何其他约定,也请分享。谢谢
前缀 + 范围/类 + 标识符/详细信息 + 后缀/常量类型。
省略不适用的。
例子:
// 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
. 聪明的。