Xcode使用FIXME,TODO,??? ,?

Ben*_*Ben 39 tags xcode comments todo xcode4

我已经开始使用FIXME,TODO,???!!!XCode中的标签,但我已经发现它的痛苦,它并不能识别标签时,他们是在一个函数中.标签仅在给定功能之外被识别.

如何在函数中识别这些标记(因为这是错误所在的位置)?

loo*_*mer 50

在xcode 4.1中(不知道这是否适用于以前的版本)我写的

#warning TODO: fix this later...
Run Code Online (Sandbox Code Playgroud)

获得编译警告或

#error FIXME: fix now!
Run Code Online (Sandbox Code Playgroud)

得到编译错误.

我还将这些添加到代码片段库中,以便添加待办事项非常容易.

  • 不幸的是,如果你在构建设置中设置"将警告显示为错误",那就不好了 - 因为一切都变成了错误! (2认同)

fra*_*ank 37

解决方法是使用构建脚本将其标记为警告:

KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:"
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" \) -print0 | \
xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \
perl -p -e "s/($KEYWORDS)/ warning: \$1/"
Run Code Online (Sandbox Code Playgroud)

感谢本杰明·拉吉卜.

  • 这个脚本在[这里](http://www.benzado.com/blog/post/329/make-xcode-nag-you-about-unfinished-todos)由Benjamin Ragheb找到 (11认同)
  • 如果您的代码存储在包含其中包含空格的目录的文件路径中,则此脚本将失败.例如"/ Home/John/iPhone Apps/Code".简单修复,在第二行,在$ {SRCROOT}附近加上引号 (3认同)

Flo*_*ian 19

编辑2016-02-02

Xcode现在支持// MARK:,// TODO:和// FIXME:地标来注释你的代码并在跳转栏中列出它们.


要查找这些特殊标记(实际上是您自己指定的任何标记),可以使用搜索导航器,输入以下字符串,然后选择"在项目中,匹配正则表达式"...",忽略大小写":

(//FIXME|//!!!|//\?\?\?|//TODO)
Run Code Online (Sandbox Code Playgroud)

这将在您的项目中搜索所有这些特殊标记.您甚至可以添加任何您想要的标记,例如"// REVIEW:请查看以下代码".这将是以下搜索字符串:

(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW)
Run Code Online (Sandbox Code Playgroud)

我在工作区中创建了一个选项卡,其中搜索导航器始终打开,并填充此字符串.不幸的是,XCode有时会从搜索框中删除此字符串,因此您必须在需要时将其复制并粘贴.


Joh*_*han 8

FIXME:,TODO:,???:和!!!:在4.3.3的函数内外工作.

在双斜杠之前或之后可以有任意数量的空格,但是必须使用大写字母并使用冒号跟随标记.

只是为了说清楚 - 所有这些工作:

//          FIXME: This works.
  //TODO: This works.
    //                  !!!: Working.
// // //???: Works as well.
Run Code Online (Sandbox Code Playgroud)