Cocoa 编码指南 为实例变量和数据类型命名是本文要介绍的内容,本节描述实例变量、常量、异常、以及通知的命名约定。先来看内容。
实例变量
在为某个类添加实例变量时,请记住下面几个因素:
避免创建公共实例变量。开发人员应该关心对象的接口,而不是对象的数据存储方式这样的细节。
请把实例变量显式声明为@private或者@protected。如果您预期所提供的类会被子类化,并且子类可能需要父类的数据, 则请使用@protected指令来修饰实例变量。
请确保实例变量的名称能够扼要地描述它所保存的属性。
如果实例变量将作为类对象的可访问属性,则请务必为其编写存取方法。
常量
根据常量创建方式不同,其命名规则也有所差异。
枚举常量
请使用枚举类型来表示一群相互关联的整数值常量。
枚举常量及其所属的通过typedef定义的数据类型遵循和函数一样的命名约定(请查看“为函数命名”一节)。下面是一个取自NSMatrix.h文件的例子
- typedef enum _NSMatrixMode {
- NSRadioModeMatrix = 0,
- NSHighlightModeMatrix = 1,
- NSListModeMatrix = 2,
- NSTrackModeMatrix = 3
- } NSMatrixMode;
请注意,在上述例子中,typedef标签不是一定要具有的。
您也可以创建匿名的枚举类型来表示诸如位掩码这样的事物。例如:
- enum {
- NSBorderlessWindowMask = 0,
- NSTitledWindowMask = 1 << 0,
- NSClosableWindowMask = 1 << 1,
- NSMiniaturizableWindowMask = 1 << 2,
- NSResizableWindowMask = 1 << 3
- };
使用const 创建的常量
请使用const 来创建浮点值常量。如果某个整数值常量和其他的常量不相关,您也可以使用const来创建,否则,则应使用枚举类型。
下面的声明展示了const常量的格式:
- const float NSLightGray;
使用枚举类型声明的常量遵循和函数相同的命名约定。(请参考“为函数命名”一节)。
其他类型的常量
通常情况下, 请不要使用#define预处器理命令创建常量。对于整数值常量,请使用枚举类型创建,而对于浮点值常量,请使用const修饰符创建,这和前述的原则一样。
有些符号,预处理器需要对其进行计算,以便决定是否要对某一代码块进行处理,则它们应该使用大写字符表示。例如:
- #ifdef DEBUG
请注意,编译器定义的宏,其开头和结尾要具有两个下划线字符。例如:
- __MACH__
对于通告名称或字典关键字的字符串,请将其定义为常量。通过使用字符串常量,编译器可以验证字符串是否被正确赋值(也就是说, 编译器将执行拼写检查)。Cocoa框架提供很多字符串常量的例子,例如:
- APPKIT_EXTERN NSString *NSPrintCopies;
在实现文件中,NSString的实际值被指定为常量。(请注意,APPKIT_EXTERN宏经过计算之后是Objective-C中的extern关键字)。
异常和通告
异常和通告的名称遵循相似的命名规则,但是我们为二者推荐的使用模式并不相同。
异常
尽管您可以随意地将异常(即NSException类和一些相关联的函数所提供的机制)用于任何目的,但是通常情况下,cocoa不会利用他们来处理常规的、可预期的错误条件。这类错误应使用诸如nil、 NULL、 NO这样的返回值或者错误码来表示。通常,Cocoa把异常用于表示诸如数组索引越界这样的编程错误。
异常使用全局的NSString对象来标识,其名称按如下的方式进行组合:
- [Prefix] + [UniquePartOfName] + Exception
异常名称中的具有唯一性的那部分,其组成词应该拼写在一起, 并且每个单词的首字符要大写。下面是一些例子:
- NSColorListIOException
- NSColorListNotEditableException
- NSDraggingException
- NSFontUnavailableException
- NSIllegalSelectorException
通告
如果某个类含有委托,则通过所定义的委托方法,类的委托可以收到大部分通告。通告的名称应该反映相应的委托方法。例如,一旦应用程序发送一则NSApplicationDidBecomeActiveNotification的通告,则全局NSApplication对象的委托就会自动进行注册,这样它就可以接收到一条applicationDidBecomeActive:的消息。
通告使用全局的NSString对象进行标识,其名称按如下的方式组合:
- [Name of associated class] + [Did | Will] + [UniquePartOfName] + Notification
例如:
- NSApplicationDidBecomeActiveNotification
- NSWindowDidMiniaturizeNotification
- NSTextViewDidChangeSelectionNotification
- 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