iPhone: получить Пользовательскую переменную в установке Цели кодом?

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

Согласно этому вопросу, я поместил "целевое User Defined переменная" в Установке Здания каждой Цели.

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

30
задан Community 23 May 2017 в 10:31
поделиться

2 ответа

Поскольку файл Info.plist также предварительно обрабатывается, вы можете использовать следующий подход:

Определите пользовательский параметр в настройках сборки, например CLASS_NAME. И ключ к вашему Info.plist-файлу. Назовите ключ CLASS_NAME и установите значение $ {CLASS_NAME} .

Затем вы можете получить доступ к этому параметру:

NSString* className = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CLASS_NAME"];
66
ответ дан 27 November 2019 в 23:23
поделиться

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

Вместо этого определите макрос препроцессора в переменной Preprocessor Macros, например, MYVAR = 5. Вы можете получить доступ к этим макросам в своем коде, например:

#if MYVAR==5
    //Do something
#endif

Обратите внимание, что оценка этих выражений происходит во время сборки, а не во время выполнения.

Очень типичное использование - просто определить макрос, не заботясь о его значении. Например, определите «DEBUG = 1» в настройках отладочной сборки и «RELEASE = 1» в настройках сборки выпуска.

Затем вы можете протестировать с помощью #ifdef или #ifndef

#ifdef DEBUG
    // Log
#endif
9
ответ дан 27 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: