Xcode中那些让人焕然一新的特殊注释#pragma mark、TODO、FIXME、MARK

简介: Xcode中那些让人焕然一新的特殊注释#pragma mark、TODO、FIXME、MARK

以前很少用特殊标记注释,有也只用其中一两种。今天偶然看到别人的特殊注释跟我的习惯有些不同,决定系统的了解一下这些特殊注释。


先从常用的特殊注释说起吧:


1、#pragma mark

#pragma mark -
#pragma mark - TableViewDelegate

从技术角度讲,以 #pragma 开头的代码是一条编译器指令,一个特定于程序或编译器的指令。它们不一定适用于其它编译器或其它环境。如果编译器不能识别该指令,则会将其忽略。

其作用是,告诉Xcode编译器,要在编辑器窗格顶部的方法和函数弹出菜单中将代码分隔开,如下图所示:

20200123141524673.png


其他特殊注释,这些一般比较少用,一般在特殊情况下使用,而且用完之后尽量及时的清除,使得代码更加规范:


2、其他注释【TODO、FIXME、!!!、???、MARK】:

方法一(系统自带功能):

当你需要标记部分代码以供将来参考,比如: 优化,改进,可能的更改,要讨论的问题等。通常我们会在代码中加入如下的标记表示待办:


///TODO:标示处有功能代码待编写
///FIXME:标示处代码需要修正
///!!!:标示处代码需要注意
///???:标示处代码有疑问
///MARK:标记,和#pragma mark效果相同


使用示例:

20200117144632859.png

Xcode11中效果:

20200117144643875.png

在Xcode8及之前,使用的方式相同,还前面要和【#pragma mark - 】配合使用才会有小图标效果,具体怎么样这里就不说啦,有兴趣的话查看【Xcode中使用TODO、FIXME、!!!、???、MARK 进行标记(作者:hhyx168)】。


我当前使用的版本是Xcode11,让我们也看一下和【#pragma mark - 】配合使用,会是什么样的结果:


使用示例:

20200117145336193.png

Xcode11中效果:

20200117145335400.png


我在想是不是因为多了代表分行的短横/减号符号【 - 】的缘故,于是就试了一下,结果也展示出了一样的效果。


使用示例:


#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、将脚本加到这个位置

20200117154026337.gif


3、这样加上//TODO:等的注释,编译的时候就会有警告提示了


20200117161013108.png


应用总结:

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效果相同


推荐博客:

1、如何让自己的代码更整洁

2、iOS开发:#pragma的应用

3、ios面向切面编程:强大的AOP

4、Swift与OC的混编

5、OC与Swift的数据传输


相关文章
|
iOS开发
忽略 Xcode 8 中的注释警告
从Xcode8.0开始,引入了文档注释警告,虽然是件好事,可是各种三方库爆出了一大堆警告:
91 0
|
iOS开发
xcode中断点的威力,深入使用,老文了。重新mark下
http://www.cocoachina.com/industry/20130701/6514.html
609 0
|
iOS开发
xcode高效开发必备! mark,待实践
http://www.cocoachina.com/ios/20160418/15934.html
721 0
|
iOS开发 Shell
Xcode里一个快速注释的脚本
原帖地址:http://daidone.diandian.com/post/2011-07-05/2672424 #!/bin/sh   echo "%%%{PBXSelection}%%%" echo "#pragma mark -" echo "#pragma mark %%%{PBXSelectedText}%%%" echo "%%%{P
1210 0
|
iOS开发 API
[技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档
[技巧]使用Xcode集成的HeaderDoc自动生成注释和开发文档     Doxygen本来是一个很好的工具,可是我感觉在mac系统下,如果用doxygen最后生成的CHM文件感觉就不是那么恰当,应为本身CHM是微软的产品,苹果系统上并不是很通用,很经常出现文件乱码的情况。
995 0