以前很少用特殊标记注释,有也只用其中一两种。今天偶然看到别人的特殊注释跟我的习惯有些不同,决定系统的了解一下这些特殊注释。
先从常用的特殊注释说起吧:
1、#pragma mark
#pragma mark - #pragma mark - TableViewDelegate
从技术角度讲,以 #pragma 开头的代码是一条编译器指令,一个特定于程序或编译器的指令。它们不一定适用于其它编译器或其它环境。如果编译器不能识别该指令,则会将其忽略。
其作用是,告诉Xcode编译器,要在编辑器窗格顶部的方法和函数弹出菜单中将代码分隔开,如下图所示:
其他特殊注释,这些一般比较少用,一般在特殊情况下使用,而且用完之后尽量及时的清除,使得代码更加规范:
2、其他注释【TODO、FIXME、!!!、???、MARK】:
方法一(系统自带功能):
当你需要标记部分代码以供将来参考,比如: 优化,改进,可能的更改,要讨论的问题等。通常我们会在代码中加入如下的标记表示待办:
///TODO:标示处有功能代码待编写 ///FIXME:标示处代码需要修正 ///!!!:标示处代码需要注意 ///???:标示处代码有疑问 ///MARK:标记,和#pragma mark效果相同
使用示例:
Xcode11中效果:
在Xcode8及之前,使用的方式相同,还前面要和【#pragma mark - 】配合使用才会有小图标效果,具体怎么样这里就不说啦,有兴趣的话查看【Xcode中使用TODO、FIXME、!!!、???、MARK 进行标记(作者:hhyx168)】。
我当前使用的版本是Xcode11,让我们也看一下和【#pragma mark - 】配合使用,会是什么样的结果:
使用示例:
Xcode11中效果:
我在想是不是因为多了代表分行的短横/减号符号【 - 】的缘故,于是就试了一下,结果也展示出了一样的效果。
使用示例:
#pragma mark TODO: 标示处有功能代码待编写 #pragma mark FIXME: 标示处代码需要修正 #pragma mark !!!: 标示处代码需要注意 #pragma mark ???: 标示处代码有疑问 #pragma mark MARK: 标记,和#pragma mark效果相同
方法二(脚本实现):
1、直接先上脚本:
TAGS="XXX:|!!!:|MARK:|TODO:|FIXME:|#WARNING:" ERRORTAG="#ERROR:" find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($TAGS).*\$|($ERRORTAG).*\$" | perl -p -e "s/($TAGS)/ warning: \$1/" | perl -p -e "s/($ERRORTAG)/ error: \$1/"
2、将脚本加到这个位置
3、这样加上//TODO:等的注释,编译的时候就会有警告提示了
应用总结:
1、不管是系统方法还是脚本实现,这些标记对项目的开发维护只是起到锦上添花的作用,但是要规范代码,它们将不可或缺。
2、针对项目而言,一定要记得定期处理这些的标记(除MARK标记外),不然时间越长,垃圾代码就越多了。
3、Xcode对这些标记的实现和写法做了点细节调整,但是感觉起来会更加性感,至于想使用图一还是使用最后一张图的写法,主要看个人的习惯。个人来说,还是喜欢和【#pragma mark 】配合使用,这样会醒目一点。
4、个人感觉唯一美中不足的地方是,和【#pragma mark - 】配合只实现分行作用,没能展示对应的小图标。–> 总想着能尽善尽美😆。
5、脚本实现的方法,感觉太抢眼,对拥有警告强迫症的人来说,简直就是噩梦般的存在,针对那些必须要尽快修改的地方可以加上😺。
使用方法汇总:
#pragma mark TODO: 标示处有功能代码待编写 #pragma mark FIXME: 标示处代码需要修正 #pragma mark !!!: 标示处代码需要注意 #pragma mark ???: 标示处代码有疑问 #pragma mark MARK: 标记,和#pragma mark效果相同 ///TODO:标示处有功能代码待编写 ///FIXME:标示处代码需要修正 ///!!!:标示处代码需要注意 ///???:标示处代码有疑问 ///MARK:标记,和#pragma mark效果相同
推荐博客: