2014-12-30 3 views
3

У меня возникли проблемы с воспроизведением в функции Swift Preprocessor Macro, предлагаемой ObjC. Я слышал, что у Swift нет препроцессора, поэтому я ищу другой способ реализовать это.Макросы препроцессора в Xcode с быстрым

Моя конечная цель состоит в том, чтобы построить мой проект с помощью инструментов командной строки, передавая в пользовательскую переменную и значение, которые будут предварительно обработаны и вставлены в код в определенных точках до начала сборки.

Это решение для ObjC:

Используйте эту команду, чтобы запустить тест:

xcodebuild \ 
    test \ 
    -scheme TestUserDefinedVariablesObjC \ 
    -destination 'platform=iOS Simulator,name=iPhone 6' \ 
    MY_VAR=42 

Я использую MY_VAR в коде следующим образом:

int a = MY_VAR; 

(добавить my_var к Макросы препроцессора в настройках моей целевой настройки: MY_VAR=$(MY_VAR))

В качестве последнего средства я мог бы добавить предварительное действие на этап запуска схемы, который заменяет правильные значения с помощью sed или что-то в этом роде, но это не очень хорошее решение.

+0

Возможный дубликат [Swift: флаг командной строки развертывания iOS] (http://stackoverflow.com/questions/24369272/swift-ios-deployment-target-command-line-flag) –

+0

@ Дэвид, я хочу передать _variable_ из командной строки в приложение, а не константу. – paulvs

+0

То же различие. В Xcode установите его как MY_VAR = $ (MY_VAR) –

ответ

0

Вы используете разные клавиатуры/клавиатуры? Если да проверить "

пример: макросов препроцессора в сборке настройки моей мишени my_var = \" 42 \ "

чек" характер. Измените его на «

Смежные вопросы