Условное исключение кода в Swift

Я пытаюсь исключить некоторые части файла Swift для конкретной цели. Тем не менее я не нашел замены директивы #ifndef objective-c, и, кроме того, если я использую такую ​​форму:

#if taxi_coops
func pippo(){
    println("pippo");
}
#else
func triggerActiveLocationUpdate(entering:Bool){}
#endif

Препроцессор полностью игнорирует директиву и пытается скомпилировать triggerActiveLocationUpdate. Обратите внимание, что директива #if taxi_coops соблюдается в других частях одного и того же файла.

Есть ли способ просто исключить некоторые фрагменты кода в Swift и/или почему мое исправление не работает?

+4
источник поделиться
2 ответа

Проблема заключалась в репликации конфигурации в файле Другие быстрых флагов в форме

-D опция

Очевидно, Swift игнорирует флаги в поле препроцессора. Теперь он принимает ||, && а также! без каких-либо проблем с синтаксисом:

#if option || !option2
......
#elseif option3
......
#endif
+5
источник

В Swift используйте #if ! в качестве замены для #ifndef, например:

#if !os(OSX)
    // compiled when not on OS X
#endif
+9
источник

Посмотрите другие вопросы по меткам или Задайте вопрос