Условное исключение кода в Swift
Я пытаюсь исключить некоторые части файла Swift для конкретной цели. И все же я не нашел замены директиве #ifndef target-c и, более того, если бы я использовал такую форму:
#if taxi_coops
func pippo(){
println("pippo");
}
#else
func triggerActiveLocationUpdate(entering:Bool){}
#endif
Препроцессор полностью игнорирует директиву и пытается скомпилировать triggerActiveLocationUpdate. Обратите внимание, что директива #if taxi_coops соблюдается в других частях того же файла.
Есть ли способ просто исключить некоторые куски кода в Swift и / или почему мое исправление не работает?
2 ответа
Решение
Проблема заключалась в репликации конфигурации в файле " Другие флаги Swift" в виде
Опция -D
Очевидно, Swift игнорирует флаги в поле препроцессора. Теперь он принимает ||, && и! без проблем с синтаксисом:
#if option || !option2
......
#elseif option3
......
#endif
В Swift используйте #if !
в качестве замены #ifndef
Например:
#if !os(OSX)
// compiled when not on OS X
#endif