Swift 2 print(),如何隐藏?

Swift 2 print(),如何隐藏?,swift,println,Swift,Println,在Swift 2之前,您可以通过像这样的一个小助手隐藏所有println()以供发布 func println(object: Any) { #if DEBUG Swift.println(object) #endif 如果你把这个改成 func print(object: Any) { #if DEBUG Swift.print(object) #endif 它可以正常工作,但是print()有一个新的appendLine功能。所以在你的代码中你可以写 println(

在Swift 2之前,您可以通过像这样的一个小助手隐藏所有println()以供发布

func println(object: Any) {

#if DEBUG
    Swift.println(object)
#endif
如果你把这个改成

func print(object: Any) {

#if DEBUG
    Swift.print(object)
#endif
它可以正常工作,但是print()有一个新的appendLine功能。所以在你的代码中你可以写

println("Test", appendNewLine: false)

但是,这样做意味着上述助手将不再工作。关于如何解决这个问题的任何建议。非常感谢。

使用
Swift.debugPrint()
在发布模式下关闭所有打印。

Qbyte在正确的轨道上,但是无论是否定义了“
DEBUG
”,都将打印
debugPrint

为什么不将帮助程序更改为采用“
appendNewLine
”?即:

func print(object: Any) {

#if DEBUG
    Swift.print(object, appendNewLine: true)
#endif
或者把名字改得更清楚一点:

func printDuringDebug(object: Any) {

    #if DEBUG
        print(object, appendNewLine: true)
    #endif

对于swift 2.2,我使用以下内容:

// Disable print for production.
func print(items: Any..., separator: String = " ", terminator: String = "\n") {
    #if DEBUG
    Swift.print(items[0], separator:separator, terminator: terminator)
    #endif
}

非常感谢。事实证明,appendNewLine只在您不想使用它时才需要。所以说print(“Test”)和println(“Test”)完全一样。如果要在控制台中输出到一行,只需说appendNewLine:false。据我所知,这是不正确的。你能指出这方面的文档吗,因为函数的描述中没有提到它,我在搜索它时只能找到StackOverflow答案。这个问题可能会引起一些混乱:根据本文,Swift编译器不会在编译时删除debugPrint:也感谢您。事实上我也试过了,但有一些问题。将在GM发布后的2天内重试。看我上面的评论,显然你甚至不需要写换行:真的。我误解了这一点。嘿,谢谢,这就是我目前正在做的。我编辑了您的答案,将该行包含在函数中,因为这也发生了变化。我认为它是正确的,因为这是目前最好的解决方案,应该对未来的读者有所帮助。