之所以写这个,是因为自己接盘过几个项目,而其中的注释几乎为零,看起来特别崩溃,也很无奈。其实代码添加注释真的是一种很好的编程习惯,不仅仅是因为接盘的项目没注释,自己写代码在关键地方也会添加一些注释代码,后期维护也比较方便,而如果是那种一个页面几千行甚至几万行的要进行修改,TMD,想想都恐怖。方法注释常用的是一下几种。
- 单行 (如:// 姓名)
- 多行 (如: ///)
- 方法集 (如:#pragma mark &***************** get Data)
- 单行,简单的描述
//
,或command + /
,后者可以对选中的代码进行批量注释。单行一般用于属性,或者区域块内的注释。
// 按钮数组
@property(nonatomic,strong)NSMutableArray *btnArray;
- (void)viewDidLoad {
[super viewDidLoad];
currentTypeIndex = 0;
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
// 初始化View
[self createSubviews];
// 获取商品标签
[self getGoodsTags];
}
注释风格可根据自身喜好去定义,比如注释的优先级
// &&&&&&
,可根据&
数量的多少确定优先级。
- 多行注释
多行注释比单行注释的好处是多行注释在使用到方法,或属性的时候,会有提示。
而且在quickhelp
查看时会有显示(alt
+ 鼠标左键)
多行注释以/**
开头*/
结束,中途不能出现*/
,或者在方法或属性面前使用(alt + command + /
)快捷键,会自动补齐(前身为VVDocumenter
插件,貌似被收购了?)
/// <#Description#>
/// @param animated <#animated description#>
-(void)viewWillDisappear:(BOOL)animated{}
-
Description
方法描述 -
@param
参数
@param
与此类似的还有以下几种:
标签/注释常用 | 用法 |
---|---|
@param |
@param 参数名 参数含义 |
@return |
返回值 |
@see |
欲知详情,请看xx类或方法 |
@note |
笔记 |
@warning |
警告 |
@brief |
使用它来写一段你正在文档化的method, PRoperty, class, file, struct, 或enum的短描述信息 |
@discussion |
详细描述 |
@sa |
同上 |
@code |
文档嵌入代码段。在Help Inspector当中查看文档时,代码通过在一个特别的盒子中用一种不同的字体来展示。记住在写的代码结尾处使用 |
@endcode |
标签 |
@remark |
强调任何关于代码特殊之处 |
标签/ 记录文件 | 用法 |
---|---|
@file |
指出你正在记录一个文件(header 文件或不是)。如果你将使用Doxygen来输出文档,那么你最好在这个标签后面紧接着写上文件名字。它是一个top level 标签 |
@header |
跟上面的类似,但是是在 HeaderDoc中使用。当你不使用 Doxygen时,不要使用上面的标签 |
@author |
文件创建者信息 |
@ copyright |
版权信息 |
@ version |
文件的当前版本。如果在工程生命周期中版本信息有影响时这会很重要 |
@ class |
用它来指定一个class的注释文档块的开头。它是一个top level标签,在它后面应该给出class名字 |
@ interface |
同上 |
@ protocol |
同上两个一样,只是针对protocols |
@ superclass |
当前class的superclass |
@ classdesign |
用这个标签来指出你为当前class使用的任何特殊设计模式 |
@ coclass |
与当前class合作的另外一个class的名字 |
@ helps |
当前class帮助的class的名字 |
@ helper |
帮助当前class的class名字 |
- 方法集注释
系统有一个自带的方法集注释
#pragma <#argument#>
但是这样的没有分割线,看起来有点不爽,按照自己的想法添加想要的分割线就好了比如我的。
#pragma mark &***************** life style
其他类似注释
注释 | 用法 |
---|---|
#warning |
黄色警告 |
#pragma mark |
方法集 |
// MARK: 等同于#pragma mark |
方法集 可以放进//、///、//<、//、//、/</等注释方式中 |
// TODO: |
等待实现的功能 可以放进//、///、//<、//、//、/</等注释方式中 |
// FIXME: |
需要修正的功能 可以放进//、///、//<、//、//、/</等注释方式中 |
// !!!: |
需要改进的功能 可以放进//、///、//<、//、//、/</等注释方式中 |
// ???: |
有疑问的功能 可以放进//、///、//<、//、//、/</等注释方式中 |
这样达成的效果如下
将不同的方法集(如:声明周期,代理方法,代理数据源,属性的setter与getter)用方法集注释分割,查找话就方便多了,生命周期方法,在life 下面找就行,界面初始化一目了然在init view下看,就算有几万行代码,找界面初始化方法,直接在init view注释下面找,因为其他的地方不会有。