ios - 在 Objective-C 中定义常量的最佳方式

标签 ios objective-c naming-conventions

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

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

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

最佳答案

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

省略不适用的内容。

例子:

// 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。聪明。

关于ios - 在 Objective-C 中定义常量的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092158/

相关文章:

ios - 如何缩放到当前用户位置?

ios - 无法在现有的 tableviewcontroller 上呈现 .xib viewcontroller

objective-c - 如何读取一张照片元数据中的 "{TIFF}"信息

c# - 术语:您如何描述 Nullable<T> 的类型 T?

asp.net-mvc - ViewModel 子对象的命名约定

pytorch - PyTorch 为什么叫 PyTorch?

ios - 我们可以在 Objective C 中创建#pragma mark 的分割吗?

ios - 录制 iOS 对话。从哪儿开始?

ios - 您能否使 Xcode 5.1 目标依赖项仅构建有效的体系结构?

objective-c - ContentOffset 和回到顶部问题