В моем проекте создано несколько целей. Теперь я планирую добавить строку UUID
ко всем целям GCC_PREPROCESSOR_DEFINITIONS, также известную как макрос препроцессора.
Я добавлю это в Alpha, Beta, Lite & Prod. И на основе строки UUID я могу узнать, какой вариант запущен, и использовать соответствующие конфигурации для динамической обработки.
Допустим, для Target1 я хочу добавить UUID = "<UUID for Target1>"
и добавлю 4 uuid в каждую цель.
Теперь у меня есть два вызова -
Что касается первого варианта, я искал в Интернете, но нашел решение для добавления значений int, и при получении значения проверяется с использованием if elif и else как в Swift, так и в Objective-C.
Но я хочу добавить string value
, и при получении я хочу присвоить это значение моей локальной переменной Swift и использовать этот uuid.
Как я могу получить строковое значение из макроса препроцессора в переменную Swift?
Может быть, это основной вопрос, но я ничего не нашел по этому поводу.
Это возможно, но нам нужна помощь ОК, поскольку Марко Свифта слаб.
S_UUID="2EBEA32B-60AE-48FA-90E1-686DD83512DE"
Я добавил префикс S_
, чтобы символ не конфликтовал с системными символами.
//turns x into a string literal
#define STRINGIZE(x) #x
//uses STRINGIZE(x) to turn the value of x into a string.
#define STRINGIZE_VALUE_OF(x) STRINGIZE(x)
NSString *uuid = @STRINGIZE_VALUE_OF(S_UUID);
Я создал проект POC здесь. Он также имеет код для использования полученного UUID в Swift.