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

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

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

1、#pragma mark

#pragma mark -
#pragma mark - TableViewDelegate

从技术角度讲,以 #pragma 开头的代码是一条编译器指令,一个特定于程序或编译器的指令。它们不一定适用于其它编译器或其它环境。如果编译器不能识别该指令,则会将其忽略。
其作用是,告诉Xcode编译器,要在编辑器窗格顶部的方法和函数弹出菜单中将代码分隔开,如下图所示:

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

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

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

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

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

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

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

使用示例:
3
Xcode11中效果:

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

使用示例:

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

推荐博客:
1、如何让自己的代码更整洁
2、iOS开发:#pragma的应用
3、ios面向切面编程:强大的AOP
4、Swift与OC的混编
5、OC与Swift的数据传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓜子三百克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值