有人能告诉我这是IDE的工作方式吗?或者我不明白// TODO注解功能是如何工作的?当我放置// TODO时,Xcode会在跳转栏中添加一个TODO部分。多个TODO会放置多个部分,并将TODO注解作为部分标题。我所看到的问题是,任何出现在我的TODO注解之后的方法都包含在跳转栏的TODO部分中。为什么Xcode只是自动将我的注解之后的所有方法添加为TODO的一部分?可能我没有明白为何会这样做,又或我做错了,可否请人澄清一下?谢谢!
wqsoz72f1#
不确定是否有// TODO特殊注解标记。有TODO:,FIXME:,MARK:,MARK: -(放置分隔符)。MARK: - Some Text会放置一些带有分隔符的文本。还有// ???:和// !!!:-它们也会产生标记-试试看吧(它们可能在Swift中不起作用)。不带:的// TODO不会创建任何标记(从Xcode 10开始)。
// TODO
TODO:
FIXME:
MARK:
MARK: -
MARK: - Some Text
// ???:
// !!!:
:
您可以使用某些类型的注解在构建时生成警告。选择Project -〉Build Phases,按“+”按钮添加另一个阶段。在创建时选择Run Script。添加为脚本主体(确保Shell为/bin/sh):
Build Phases
Run Script
/bin/sh
KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:" find "${SRCROOT}" \( -name "*.swift" \) -print0 | \ xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \ perl -p -e "s/($KEYWORDS)/ warning: \$1/"
现在,当您构建时,您将收到带有注解文本的警告。
您可以自由地将关键字限制为修复和!!!。要提前获得这些警告(而不是等待实际构建),只需将新创建的Run Script部分移到顶部。可以在here和here中找到此解决方案的一些变体。
如果您需要对某段代码执行explicitly rise a warning,Swift允许使用以下编译指令:
#if os(iOS) #warning("this code is untested in iOS") #endif
或者
#error("Throws a build error")
1条答案
按热度按时间wqsoz72f1#
特殊注解标记
不确定是否有
// TODO
特殊注解标记。有TODO:
,FIXME:
,MARK:
,MARK: -
(放置分隔符)。MARK: - Some Text
会放置一些带有分隔符的文本。还有// ???:
和// !!!:
-它们也会产生标记-试试看吧(它们可能在Swift中不起作用)。不带
:
的// TODO
不会创建任何标记(从Xcode 10开始)。通过将注解标记转换为Xcode警告来突出显示注解标记
您可以使用某些类型的注解在构建时生成警告。选择Project -〉
Build Phases
,按“+”按钮添加另一个阶段。在创建时选择Run Script
。添加为脚本主体(确保Shell为/bin/sh
):现在,当您构建时,您将收到带有注解文本的警告。
您可以自由地将关键字限制为修复和!!!。要提前获得这些警告(而不是等待实际构建),只需将新创建的
Run Script
部分移到顶部。可以在here和here中找到此解决方案的一些变体。抛出自定义编译时警告和错误
如果您需要对某段代码执行explicitly rise a warning,Swift允许使用以下编译指令:
或者