iPhone - Compiler Conditionals
-
19-09-2019 - |
Вопрос
Два вопроса:
этот код
#ifdef __IPHONE_3_0
// iPhone 3.0 specific stuff
#else
// iPhone 2.2 specific stuff
#endif
Скомпилируют конкретные коды для конкретных версий iPhone. Как это может быть преобразовано в компиляцию для ряда устройств? Например: если версия iPhone <3.1 или если версия> = 3.2, и поэтому ...
2) Где мне получить список всех условий, разрешенных XCode?
Спасибо за помощь.
Решение
Эти определения найдены в Availability.h
, расположено в любом SDK, который вы используете. Например, вы можете найти версию для симулятора 3.0 на
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h
Как примечание, легко посмотреть постоянные, как __IPHONE_3_0
Выделив их, щелкнув правой кнопкой мыши и выбирая «прыжок к определению» из всплывающего меню.
В Availability.h
, Сам заголовок подробно описывает, как избирательно компилировать для различных версий. Например, для компиляции кода, только если версия ОС iphone превышает 3.0, вы можете использовать
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0
// Your code here
#endif
Обратите внимание, что это для определения того, что включать во время компиляции, а не для выборочного включения кода в зависимости от того, на какой версии ОС работает приложение.