PHP, принимая "набор" является массивом:
$foo = array("alpha", "bravo", "charlie");
$index = array_rand($foo);
$val = $foo[$index];
функции вихря Мерсенна лучше, но нет никакого MT, эквивалентного из array_rand в PHP.
У меня это работает в Xcode 2.4.1:
GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) NEW_VALUE"
Иногда нужно подождать несколько секунд между редактированием файла конфигурации и изменением, отображаемым в информации о сборке цели.
Согласно руководству по системе сборки Xcode:
Когда блок конфигурации содержит более одного определения для конкретный параметр сборки, Xcode использует последнее определение в блоке. Хранить в виду, что файлы конфигурации делают нет доступа к настройкам сборки определения, сделанные в конфигурации файлы, которые они включают. Это ты не может изменить определение, данное в включенный файл конфигурации; ты может только заменить его.
Итак, я полагаю, это означает, что невозможно добавлять значения к данной переменной.
Вы хотите использовать заполнитель $ (унаследованные) для представления значения, унаследованного от более низких уровней, например,
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited) NEW_VALUE"
Существует другой вопрос с ответом, который может помочь с этой конкретной проблемой. Он описывает технику, которая имеет каждый слой составляют подмножество определений, затем принесет их все вместе на уровне листьев XCConfig.