Iphone: получить переменную User Defined в настройке Target по коду?
Мой проект имеет несколько целей. Каждая цель имеет свой собственный файл Class
для настройки материала. Я хочу сохранить это имя Class
в целевой настройке (Info.plist
или Target Building). Чтобы я мог определить, какой класс мне нужно использовать в каждой цели на основе этого параметра.
В соответствии с этим вопросом я помещаю "целевую переменную User Defined
" в каждую целевую настройку здания.
Но не знаете, как вернуть его в свой код?
Ответы
Ответ 1
Поскольку файл Info.plist также предварительно обрабатывается, вы можете использовать этот подход:
Определите пользовательский параметр в настройках сборки для примера CLASS_NAME.
И ключ к вашему файлу Info.plist. Назовите ключ CLASS_NAME и установите значение ${CLASS_NAME}
.
Затем вы можете получить доступ к этому параметру:
NSString* className = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CLASS_NAME"];
Ответ 2
Вы не можете напрямую использовать переменную, определенную в настройках сборки. Эти переменные предназначены для использования инструментами построения.
Вместо этого определите макрос препроцессора в переменной макросов препроцессора, как "MYVAR = 5". Вы можете получить доступ к этим макросам в своем коде, например:
#if MYVAR==5
//Do something
#endif
Обратите внимание, что оценка этих выражений происходит во время сборки не во время выполнения.
Это очень типичное использование, чтобы просто определить макрос, не заботясь о значении. Например, определите "DEBUG = 1" в настройках сборки отладки и "RELEASE = 1" в настройках сборки выпуска.
Затем вы можете проверить с помощью #ifdef или #ifndef
#ifdef DEBUG
// Log
#endif