115

目前我正在处理基于 iOS 的图像处理任务。

问题:

我正在研究不同的模块。因此,如果将来我需要在模块中添加某些内容,我想将其标记为待办事项。是否有任何其他宏或类似的宏可以在 Xcode 中添加待办事项?

我试过了:

为此,我目前使用#pragma的是:

#pragma mark -
#pragma mark To do: Add the Image processing methods.

我有:

但它在“方法”部分中列出,例如:

去做

我真正需要的:

问题是,它列在方法列表下,所以有时我忘记从该部分中删除它,而且很难在整个源代码中找到它。(搜索#pragma 结果以显示整个列表)

技术细节:

我正在使用 Xcode 版本 4.6.2 。

4

10 回答 10

143

我知道了。

写评论如:

// TODO: Do something

会成功的。

我得到了类似的东西:

去做


还有很多选择,例如

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun
于 2013-06-04T08:32:43.293 回答
131
// TODO: the thing todo

是您显示待办事项的方式。

于 2013-06-04T08:30:47.240 回答
47

使用

//TODO: some thing here

如果您只想查看下拉列表中的待办事项列表,则可以使用

如果你想被打扰,你可以使用#warning标记来代替:

#warning this will create a compiler warning.

当你构建应用程序时,你会收到一个编译器警告(一个黄色三角形,不是编译器错误),它更像是在提醒你需要做的事情。

于 2013-06-04T10:12:37.687 回答
37

使用下面的脚本,您可以看到所有必需的标签,例如警告。

  1. 在项目导航器中选择您的项目
  2. 在侧边栏中打开目标并移至“构建阶段”选项卡
  3. 点击“+”号
  4. 选择“新运行脚本构建阶段” 脚本添加
  5. 将以下脚本添加到“运行脚本” 准备好的脚本 脚本中:

    KEYWORDS="TODO:|FIXME:|DevTeam:|XXX:"
    find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
    

在此处输入图像描述

原始答案取自这里

另一种选择是Xcode 的XToDo插件。

于 2014-05-16T13:58:45.880 回答
7

您可以使用 XToDo 插件

https://github.com/trawor/XToDo

使用 ctrl+t 触发列表窗口开/关

使用 ctrl+t 触发列表窗口开/关

工具栏示例

使用 alcatraz 轻松安装使用 ctrl+t 触发列表窗口开/关

于 2015-03-28T18:39:22.087 回答
7

我从

// TODO: Implement bubble sort.

然后我加入了一个大型项目,有时我需要一个 todo 比 WIP 提交更长寿,所以为了将我的 todo 与我的同行区分开来,我用我的首字母命名我的 todo:

// TODO: SM: Implement bubble sort

有时我想要更多的可见性,所以我开始在某些地方使用编译指示警告。

#warning Implement bubble sort

-Werror有一天,我决定通过添加到我的 cflags来打开困难模式。不幸的是,这使得编译指示警告毫无用处,因为它们会阻止编译。所以我继续使用// TODO:,直到 Jeff Nadeau 告诉我我可以使用

-Wno-error=#warnings

在我的 cflags 中,以免将编译指示警告视为错误。所以现在#warning-Werror可以并肩生活。

于 2017-07-13T02:43:51.493 回答
4

我倾向于准确地写:

//TODO: Blah blah blah

然后我只需执行COMMAND-SHIFT-F并查找“//TODO”。

使用文件大纲下拉菜单只会显示当前文件的 TODO,但我倾向于查看项目的 TODO 状态。

粗略的解决方案,但它确实有效。

于 2014-07-25T01:14:41.497 回答
2

我将已识别的标记拆分为警告和错误供我自己使用,我想我会在这里分享它:

KEYWORDS="STUB:|WARNING:|TODO:|FIXME:|DevTeam:|\?\?\?:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: warning: \$1/"

KEYWORDS="ERROR:|XXX:|\!\!\!:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"
ERROR_OUTPUT=`find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"`

exit ${#ERROR_OUTPUT}
于 2018-06-27T15:15:40.507 回答
0

另一个简单的方法,稍微在框外,如果你不想弄乱方法列表栏,是在评论中使用约定//Todo:,当你想整体解决它们时,只需选择 Find Navigator,match case并搜索//Todo:

我更喜欢这个,因为我不喜欢下拉看起来像意大利面条代码的方法。是的,我经常有很多 Todo:'s ;)

于 2014-04-15T17:24:37.853 回答
0
#error

#warning

也用于 C 编程

于 2016-08-25T09:07:42.870 回答