В идеале, максимально ограничить использование #if
. Использование директив препроцессора всегда немного пахнет кодом. В этом случае вы можете просто использовать логическую переменную:
#if DEBUG
let debug = true
#else
let debug = false
#endif
Тогда просто используйте переменную:
var a = 0
var b = 0
...
else if debug && a == b {
}
В режиме выпуска код станет недоступным, и оптимизатор все равно удалит его.
Немного воображения, мы можем найти другие решения, например, мы можем переместить проверку в функцию:
func isDebugCheck(a: Int, b: Int) -> Bool {
#if DEBUG
return a == b
#else
return false
#endif
}
или мы можем переместить весь код в отдельную функцию и заменить if-else
на return
(или continue
, в зависимости от ваших потребностей), например ::
if a == 7 {
...
return
}
#if DEBUG
if a == b {
return
}
#endif
if ...