Условное исключение кода в 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
Другие вопросы по тегам