Подтвердить что ты не робот

Iphone: получить переменную User Defined в настройке Target по коду?

Мой проект имеет несколько целей. Каждая цель имеет свой собственный файл Class для настройки материала. Я хочу сохранить это имя Class в целевой настройке (Info.plist или Target Building). Чтобы я мог определить, какой класс мне нужно использовать в каждой цели на основе этого параметра.

В соответствии с этим вопросом я помещаю "целевую переменную User Defined" в каждую целевую настройку здания.

Но не знаете, как вернуть его в свой код?

4b9b3361

Ответ 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