Swift 2 print(), как спрятать?

До 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)

Однако это означает, что вышеупомянутый помощник больше не будет работать. Любые предложения о том, как это исправить. Большое спасибо.

3 ответа

Решение

Для 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
}

Использование Swift.debugPrint() вместо этого, чтобы отключить все отпечатки в режиме выпуска.

Qbyte на правильном пути, но debugPrint будет печатать независимо от того, "DEBUG"определяется или нет.

Почему бы не сменить помощника на "appendNewLine"? То есть:

func print(object: Any) {

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

или, возможно, изменить имя, чтобы быть немного более понятным:

func printDuringDebug(object: Any) {

    #if DEBUG
        print(object, appendNewLine: true)
    #endif
Другие вопросы по тегам