删除 iOS Swift 发布版本的 println()

2024-01-16

我想全局忽略所有println()如果我不在调试版本中,则调用我的 Swift 代码。我找不到任何可靠的分步说明,希望得到指导。有没有办法在全球范围内做到这一点,或者我需要包围每个println() with #IF DEBUG/#ENDIF声明?


最简单的方法是将你自己的全局函数放在 Swift 的前面println:

func println(object: Any) {
    Swift.println(object)
}

当需要停止记录时,只需注释掉该函数的主体即可:

func println(object: Any) {
    // Swift.println(object)
}

或者您可以使用条件使其自动执行:

func println(object: Any) {
    #if DEBUG
        Swift.println(object)
    #endif
}

EDIT在斯威夫特 2.0 中println更改为print。不幸的是它现在有一个可变的第一个参数;这很酷,但这意味着你不能轻易地重写它,因为 Swift 没有“splat”运算符,所以你不能在代码中传递变量(它只能按字面意思创建)。但是,如果您只打印一个值(通常情况下),您可以制作一个有效的简化版本:

func print(items: Any..., separator: String = " ", terminator: String = "\n") {
    Swift.print(items[0], separator:separator, terminator: terminator)
}

在 Swift 3 中,您需要抑制第一个参数的外部标签:

func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {
    Swift.print(items[0], separator:separator, terminator: terminator)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除 iOS Swift 发布版本的 println() 的相关文章

随机推荐