Cocoa 编码指南 为实例变量和数据类型命名

移动开发 iOS
在面向对象软件库的设计过程中,开发人员经常忽视对类、方法、函数、常量以及其他编程接元素的命名。本节讨论为实例变量和数据类型命名。

Cocoa 编码指南 为实例变量数据类型命名是本文要介绍的内容,本节描述实例变量、常量、异常、以及通知的命名约定。先来看内容。

实例变量

在为某个类添加实例变量时,请记住下面几个因素:

避免创建公共实例变量。开发人员应该关心对象的接口,而不是对象的数据存储方式这样的细节。

请把实例变量显式声明为@private或者@protected。如果您预期所提供的类会被子类化,并且子类可能需要父类的数据, 则请使用@protected指令来修饰实例变量。

请确保实例变量的名称能够扼要地描述它所保存的属性。

如果实例变量将作为类对象的可访问属性,则请务必为其编写存取方法。

常量

根据常量创建方式不同,其命名规则也有所差异。

枚举常量

请使用枚举类型来表示一群相互关联的整数值常量。

枚举常量及其所属的通过typedef定义的数据类型遵循和函数一样的命名约定(请查看“为函数命名”一节)。下面是一个取自NSMatrix.h文件的例子

  1. typedef enum _NSMatrixMode {   
  2.     NSRadioModeMatrix           = 0,   
  3.     NSHighlightModeMatrix       = 1,   
  4.     NSListModeMatrix            = 2,   
  5.     NSTrackModeMatrix           = 3   
  6. } NSMatrixMode;  

请注意,在上述例子中,typedef标签不是一定要具有的。

您也可以创建匿名的枚举类型来表示诸如位掩码这样的事物。例如:

  1. enum {   
  2.     NSBorderlessWindowMask      = 0,   
  3.     NSTitledWindowMask          = 1 << 0,   
  4.     NSClosableWindowMask        = 1 << 1,   
  5.     NSMiniaturizableWindowMask  = 1 << 2,   
  6.     NSResizableWindowMask       = 1 << 3   
  7. };  

使用const 创建的常量

请使用const 来创建浮点值常量。如果某个整数值常量和其他的常量不相关,您也可以使用const来创建,否则,则应使用枚举类型。

下面的声明展示了const常量的格式:

  1. const float NSLightGray;  

使用枚举类型声明的常量遵循和函数相同的命名约定。(请参考“为函数命名”一节)。

其他类型的常量

通常情况下, 请不要使用#define预处器理命令创建常量。对于整数值常量,请使用枚举类型创建,而对于浮点值常量,请使用const修饰符创建,这和前述的原则一样。

有些符号,预处理器需要对其进行计算,以便决定是否要对某一代码块进行处理,则它们应该使用大写字符表示。例如:

  1. #ifdef DEBUG  

请注意,编译器定义的宏,其开头和结尾要具有两个下划线字符。例如:

  1. __MACH__  

对于通告名称或字典关键字的字符串,请将其定义为常量。通过使用字符串常量,编译器可以验证字符串是否被正确赋值(也就是说, 编译器将执行拼写检查)。Cocoa框架提供很多字符串常量的例子,例如:

  1. APPKIT_EXTERN NSString *NSPrintCopies;  

在实现文件中,NSString的实际值被指定为常量。(请注意,APPKIT_EXTERN宏经过计算之后是Objective-C中的extern关键字)。

异常和通告

异常和通告的名称遵循相似的命名规则,但是我们为二者推荐的使用模式并不相同。

异常

尽管您可以随意地将异常(即NSException类和一些相关联的函数所提供的机制)用于任何目的,但是通常情况下,cocoa不会利用他们来处理常规的、可预期的错误条件。这类错误应使用诸如nil、 NULL、 NO这样的返回值或者错误码来表示。通常,Cocoa把异常用于表示诸如数组索引越界这样的编程错误。

异常使用全局的NSString对象来标识,其名称按如下的方式进行组合:

  1. [Prefix] + [UniquePartOfName] + Exception  

异常名称中的具有唯一性的那部分,其组成词应该拼写在一起, 并且每个单词的首字符要大写。下面是一些例子:

  1. NSColorListIOException   
  2. NSColorListNotEditableException   
  3. NSDraggingException   
  4. NSFontUnavailableException   
  5. NSIllegalSelectorException  

通告

如果某个类含有委托,则通过所定义的委托方法,类的委托可以收到大部分通告。通告的名称应该反映相应的委托方法。例如,一旦应用程序发送一则NSApplicationDidBecomeActiveNotification的通告,则全局NSApplication对象的委托就会自动进行注册,这样它就可以接收到一条applicationDidBecomeActive:的消息。

通告使用全局的NSString对象进行标识,其名称按如下的方式组合:

  1. [Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification  

例如:

  1. NSApplicationDidBecomeActiveNotification   
  2. NSWindowDidMiniaturizeNotification   
  3. NSTextViewDidChangeSelectionNotification   
  4. NSColorPanelColorDidChangeNotification  

小结:关于Cocoa 编码指南 为实例变量数据类型命名的 内容介绍完了,希望本文对你有所帮助!推荐几篇相关文章:

Cocoa 编码指南 代码命名基础: http://mobile.51cto.com/iphone-274085.htm
Cocoa 编码指南 为函数命名: http://www.51cto.com/php/viewart.php?artID=274108  
Cocoa 编码指南 为方法命名: http://www.51cto.com/php/viewart.php?artID=274104
Cocoa 编码指南 为实例变量和数据类型命名:http://www.51cto.com/php/viewart.php?artID=274094
Cocoa 编码指南 框架开发者使用技巧和技术http://www.51cto.com/php/viewart.php?artID=274094

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-07 10:29:35

Cocoa 方法 框架

2011-07-07 10:39:07

Cocoa 函数

2011-07-07 10:07:19

Cocoa 框架

2024-01-12 09:00:22

Swift常量数据类型

2023-10-17 07:57:56

Python数据类型

2022-03-01 23:31:29

Python编程语言变量

2011-08-04 09:56:30

Objective-C 变量 数据类型

2021-04-05 08:22:54

Python进制数据类型

2009-06-24 08:04:18

Hibernate基础核心接口数据类型

2018-11-15 09:45:47

JavaScript数据类型变量

2023-03-27 10:04:27

数据类型浮点型布尔型

2009-08-14 13:52:18

C#判断数据类型

2020-10-26 13:46:07

Java基础入门篇

2013-05-10 15:27:07

R语言

2011-06-17 16:23:49

Cocoa苹果

2023-05-26 00:02:31

SDS数据编码

2011-07-07 10:50:09

Cocoa 框架

2011-07-07 13:30:32

Cocoa Core

2021-01-13 05:18:50

数据类型性能

2011-06-15 17:02:02

CocoaiOS
点赞
收藏

51CTO技术栈公众号