У меня возникли проблемы с воспроизведением в функции 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 или что-то в этом роде, но это не очень хорошее решение.
Возможный дубликат [Swift: флаг командной строки развертывания iOS] (http://stackoverflow.com/questions/24369272/swift-ios-deployment-target-command-line-flag) –
@ Дэвид, я хочу передать _variable_ из командной строки в приложение, а не константу. – paulvs
То же различие. В Xcode установите его как MY_VAR = $ (MY_VAR) –