苹果_Cocoa_编码规范(中文版)
### 苹果Cocoa编码规范知识点详解 #### 一、代码命名基础 **一般性原则** 1. **清晰性:** - **清晰优于简短:** 命名应尽可能简洁明了,但不应牺牲其清晰度。例如,“insertObject:atIndex:”比“insert:at:”更清晰,后者缺少上下文信息。 - **避免缩写:** 除非是广泛接受的缩写,否则应完整拼写。例如,“destinationSelection”优于“destSel”,后者可能导致理解困难。 - **避免歧义:** 方法名应当能够明确表达其行为。例如,“sendPort”可能引起误解,不清楚是指发送端口还是返回一个端口。 2. **一致性:** - **遵循Cocoa标准:** 尽量使用与Cocoa API一致的命名方式,如查阅头文件或参考文档中的示例。 - **多态方法的命名一致性:** 当实现多态方法时,确保不同类中的相同功能方法具有相同的名称。例如,“-(int)tag”在多个类中都有定义,保持了一致性。 3. **避免自我指涉:** - **不要使用自我指涉的名称:** 类名或方法名不应重复提及自己的类别,如“NSStringObject”。但是,掩码和通知名称不受此限制,如“NSUnderlineByWordMask”。 **前缀** - **前缀的作用:** 前缀用于区分不同的框架,避免命名冲突。例如,“NS”代表Foundation框架,“AB”代表AddressBook框架。 - **前缀格式:** 通常由2到3个大写字母组成,不使用下划线或子前缀。 - **使用场合:** 在类、协议、结构体、函数和常量的命名中使用前缀;而在成员方法的命名中不使用前缀,因为方法已经属于特定类的命名空间。 #### 二、书写约定 - **多词命名:** 对于包含多个单词的名称,每个单词的首字母大写,连续拼写。例如,“fileExistsAtPath:isDirectory:”。 - **方法名:** 方法名的第一个单词首字母小写,后续单词首字母大写。如果方法名以广为人知的大写字母缩写开头,则整个方法名都采用大写。 - **函数名与常量名:** 函数名和常量名使用与关联类相同的前缀,并且大写前缀后面的每个单词首字母。例如,“NSRunAlertPanel”、“NSCellDisabled”。 - **避免下划线:** 避免使用下划线来标记私有属性,苹果公司保留了这种方式的使用权,第三方使用可能导致命名冲突。 #### 三、类与协议命名 - **类命名:** 类名应该简明扼要地描述类的功能。例如,“NSButton”。 - **协议命名:** 协议命名也应遵循上述命名原则。例如,“NSCopying”表示类需要实现复制行为。 #### 四、头文件 - **命名规则:** 头文件的命名通常以类名或协议名为基础,并加上.h扩展名。例如,“NSButton.h”。 #### 五、方法命名 **一般性规则** - **命名风格:** 方法名应清晰表达行为,避免歧义。例如,“setBackgroundColor:”优于“setBkgdColor:”。 - **访问方法:** 用于获取属性值的方法命名为“getXXX:”或“isXXX:”,设置属性值的方法命名为“setXXX:”。 - **委托方法:** 委托方法通常以“delegate”作为方法名的一部分,以表明这是一个委托处理的方法。例如,“delegate:didSelectRowAtIndexPath:”。 - **集合方法:** 集合方法的命名应反映其作用,例如,“addObject:”、“removeObject:”。 - **方法参数:** 参数命名应明确指出其作用。例如,“-(void)setStringValue:(NSString*)value”中的“value”明确指出了参数的目的。 - **私有方法:** 私有方法的命名遵循公共方法的规则,但通常会在方法名前添加下划线以表明其私有性,尽管这不被推荐,因为它可能导致与苹果内部方法的命名冲突。 #### 六、函数命名 - **函数命名:** 函数命名遵循与类和方法相同的规则,即使用前缀并大写每个单词首字母。例如,“NSLog”、“NSAssert”。 #### 七、实例变量与数据类型命名 - **实例变量:** 实例变量的命名应简洁明了,通常使用小写字母开头。例如,“_myVariable”。 - **常量:** 常量命名通常全部大写,使用下划线分隔单词。例如,“NSDocumentTypePDF”。 #### 八、异常与通知 - **异常命名:** 异常命名应清晰表达异常的原因。例如,“NSInvalidArgumentException”。 - **通知命名:** 通知命名通常以框架前缀加上具体的行为描述。例如,“NSNotificationName”表示通知的名称。 #### 九、可接受的缩略语 - **缩略词列表:** 文件中提到了一些常见的缩写,例如“NS”代表“Next Step”或“NeXTSTEP”,这些都是被广泛接受的缩写。 #### 十、框架开发者小贴士与技巧 - **初始化:** 初始化方法是对象生命周期中的重要部分,命名应明确指出其作用。例如,“initWithCoder:”表示使用解码器初始化对象。 通过以上总结,我们可以看到苹果Cocoa编码规范提供了一套详尽的指导原则,旨在提高代码的可读性和可维护性,同时也促进了跨项目和团队之间的一致性。遵循这些规范可以帮助开发者编写出高质量、易于理解和维护的代码。
剩余17页未读,继续阅读
- 测试架构从入门到放弃2018-12-18很给力,不错的分享,谢谢大牛
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- asm-西电微机原理实验
- Arduino-arduino
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c