注释
当你写注释的时候,记得你是在给你的听众写,即下一个需要阅读你所写代码的贡献者。大方一点,下一个读代码的人可能就是你!
记住所有 C++ 风格指南里的规则在这里也同样适用,不同的之处后续会逐步指出。
Tip
每个文件的开头以文件内容的简要描述起始,紧接着是作者,最后是版权声明和/或许可证样板。
每个文件应该按顺序包括如下项:
- 代码作者
- 版权信息声明(如:)
Tip
如果你已经在文件头部详细描述了接口,可以直接说明 “完整的描述请参见文件头部”,但是一定要有这部分注释。
另外,公共接口的每个方法,都应该有注释来解释它的作用、参数、返回值以及其它影响。
为类的线程安全性作注释,如果有的话。如果类的实例可以被多个线程访问,记得注释多线程条件下的使用规则。
Tip
使用 |
来引用注释中的变量名及符号名而不是使用引号。
这会避免二义性,尤其是当符号是一个常用词汇,这使用语句读起来很糟糕。例如,对于符号 count
:
Tip
当与 Objective-C 最常规的作法不同时,尽量使指针的所有权模型尽量明确。
继承自 NSObject
的对象的实例变量指针,通常被假定是强引用关系(retained),某些情况下也可以注释为弱引用(weak)或使用 __weak
生命周期限定符。同样,声明的属性如果没有被类 ,必须指定是弱引用或赋予 @property
属性。然而,Mac 软件中标记上 IBOutlets
的实例变量,被认为是不会被类 retained
的。
当实例变量指向 CoreFoundation
、C++ 或者其它非 Objective-C 对象时,不论指针是否会被 retained
,都需要使用 和 weak
类型修饰符明确指明。CoreFoundation
和其它非 Objective-C 对象指针需要显式的内存管理,即便使用了自动引用计数或垃圾回收机制。当不允许使用 __weak
类型修饰符(比如,使用 clang 编译时的 C++ 成员变量),应使用注释替代说明。
注意:Objective-C 对象中的 C++ 对象的自动封装,缺省是不允许的,参见 的说明。
强引用及弱引用声明的例子: