Как использовать environment value?
Всем привет!
Сделал scheme,в нем environment value (например, TEST)
В коде, в AppDelegate пишу:
#if TEST
//do some actions
#endif
Но это не работает. Как правильно использовать environment value?
Всем привет!
Сделал scheme,в нем environment value (например, TEST)
В коде, в AppDelegate пишу:
#if TEST
//do some actions
#endif
Но это не работает. Как правильно использовать environment value?
Вы путаете два понятия - переменные среды и директивы препроцессора. Переменные среды определяются на каждом компе индивидуально и служат чем-то типа настроек для кучи программ сразу, например, $HOME всегда дает ссылку на директорию пользователя где бы та не находилась внутри файловой системы, до них вполне можно достучаться в момент исполнения программы. Директивы препроцессора же служат для того чтобы из одних и тех же сырцов можно было на выходе получать программы с несколько разным функционалом или данными, они существуют только до момента сборки программы, а после сборки в рантайме такого понятия уже нет - в зависимости от того что это была за директива она либо подменяется на какой-то другой набор символов(макросы), либо выкидывается вообще (#pragma mark
), либо еще что-то делает (скажем, #warning
генерит собственно warning).
Конкретно в вашем случае вы, по видимому, задали в схеме именно что переменную среды TEST, а в коде пытаетесь работать с директивой препроцессора TEST у которых общего только имя. Чтобы код внутри #if TEST
попал в компилятор вообще нужно чтобы где-то была определена директива TEST, сделать это можно либо в коде с помощью #define TEST
, либо в схеме в каком-то из свойств наподобие PREPROCESSOR_DEFINITION
или PREPROCESSOR_MACROS
- не помню как оно сейчас называется (название несколько раз меняли), но насколько помню там же в схемах Release и Debug болтаются одноименные директивы - ориентируйтесь на них. А в принципе можно даже добавить флаг непосредственно компилятору -D TEST
Принятый ответ в данном вопросе показывает на скриншоте, где именно необходимо указать значение, которое Вы хотите использовать. Конкретно - это раздел Preprocessor Macros, можете найти его через поиск в правом верхнем углу окошка.