iphone - условия компилятора - PullRequest
0 голосов
/ 12 марта 2010

Два вопроса:

этот код

#ifdef __IPHONE_3_0
    // iPhone 3.0 specific stuff
#else
    // iPhone 2.2 specific stuff
#endif

компилирует конкретные коды для определенных версий iPhone. Как это можно преобразовать для компиляции для целого ряда устройств? Например: если версия iphone <3.1 или версия> = 3.2 и т. Д. ...

2) где я могу получить список всех условий, разрешенных Xcode?

спасибо за любую помощь.

1 Ответ

1 голос
/ 12 марта 2010

Эти определения находятся в Availability.h, расположенном в любом используемом вами SDK. Например, вы можете найти версию для симулятора 3.0 на

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h

В качестве примечания можно легко найти константы, например __IPHONE_3_0, выделив их, щелкнув правой кнопкой мыши и выбрав «Перейти к определению» во всплывающем меню.

В Availability.h сам заголовок подробно описывает, как выборочно компилировать для различных версий. Например, для компиляции кода, только если версия iPhone OS больше 3.0, вы можете использовать

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0
// Your code here
#endif

Обратите внимание, что это для определения того, что следует включать во время компиляции, а не для выборочного включения кода в зависимости от версии ОС, на которой работает приложение.

...