常用标记:
//TODO: 标记将来要完成的内容
//MARK: 标记一件事情
//FIXME: 标记以后要修正或完善的内容
用法:
Objective-C 和 Swift 环境下都可以使用。需要注意的是 MARK、TODO、FIXME 均必须大写,Xcode将会在代码中寻找这样的注释,然后以粗体标签的形式将名称显示在导航栏,就如同我们会用 “#pragma mark -” 符号来标记代码区间一样的道理。
其他标记:
// ???: 疑问的地方
/// !!!: 需要注意的地方
然而,只是有上面的粗体标签标记的话是远远不够的,在没有⚠️或者❌的提示情况下,开发者很容易就会把之前的标记给忘掉。那么怎么实现添加自定义的标识,并在编译时,在 warning 或者 error 中显示出来呢?答案就是在 run script build phases 中添加一段 shell 脚本:
1) 切换到 Targets-->Build Phases-->Editor-->New Run Script Phases
2) 把下面的代码粘贴到 shell 框中
TAGS="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/"
设置完 shell 脚本后,编译代码,WARNING、TODO、FIXME 就会出现相应的⚠️,而 ERROR 就会被当错编译❌来处理。
有些人会问了,费这么老大劲,为什么不直接用 #warning 来标记呢?这就仁者见仁,智者见智了。仔细观察下面图中的区别,你就能发现其中的奥妙。
另外在团队协作开发的过程中,对于有些开发者来说,⚠️对他们来说是零容忍的,如果频繁使用 #warning,会狠狠的刺痛他们的心扉