是否可以定义一个看起来几乎像评论的宏?

时间:2009-11-25 14:41:46

标签: iphone cocoa cocoa-touch xcode

我尝试为记录创建一个有用的宏。但是我发现NSLog和带有文本信息的所有其他类型的宏只会分散注意力。

有没有办法以某种方式“破解”Xcode,它会解释像

这样的东西
/*** do this because of that ***/ 

作为宏调用,导致调用NSLog,例如?我希望这些日志“感觉”像评论。任何看起来像关键代码的东西都只是分散注意力并最终降低生产力,然后记录正在发生的事情并没有真正的好处。

3 个答案:

答案 0 :(得分:7)

  

是否可以定义一个看起来几乎像评论的宏?

为什么要让代码的可读性降低?

答案是否定的,这是一件好事。

  

有没有办法以某种方式“破解”Xcode,它会解释像

这样的东西
/*** do this because of that ***/
     

作为宏调用...

可能,但这没用。所有这一切都会使语法着色不正确(将此注释着色为好像是一个函数调用)。编译器(GCC或Clang)仍会将其视为注释。

使编译器认为它是一个函数调用或宏调用是在运行时实际实现日志输出的东西,但即使你可以这样做,它仍然是一个坏主意,因为你将伪装成函数调用或宏调用评论。

如果您希望程序记录消息,请编写记录代码:

NSLog(@"Do %@ because of %@.", foo, bar);

此代码是显式代码,它在运行时执行某些操作。没有神秘感。没有惊喜。这就是为什么它会更好。

答案 1 :(得分:2)

您可以在花括号中包含一行或多行NSLog,然后使用Xcode的折叠选项隐藏它们。

示例:

{
    NSLog(@"<#label#>");
    NSLog(@"<#label#>");
}
折叠时看起来像是:

{...}

大括号也会在展开时缩进语句,使它们在视觉上更加鲜明。

我认为您应该重新考虑使用日志语句。如果你有多行日志语句作为代码行,那就错了。您应该使用调试器来打印大多数值和消息。如果你有那么多的日志语句,那么你就会发现日志语句中的错误会产生比代码更多的错误。清理代码以进行发布也存在很大问题。

答案 2 :(得分:1)

我不知道(虽然我可能错了!)

我认为如果你想要它看起来不同,宏可能是你所希望的最好的 - 至少它会突出显示不同的颜色:)