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