Как включить вызовы методов, присутствующих только в одной версии операционной системы, при компиляции нескольких версий?

StackOverflow https://stackoverflow.com/questions/1014427

Вопрос

У меня есть приложение, которое компилируется с минимальным системным требованием Tiger (OS X 10.4), но мне нужно включить некоторый код для работы с Spaces, если приложение выполняется на Leopard (OS X 10.5).

Как мне это сделать?

(Мне нужно позвонить в - [NSWindow setCollectionBehavior:] ).

Это было полезно?

Решение

<Ол>
  • Установите базовый SDK (для всех конфигураций создаваемой цели) на версию ОС, которая включает вызов.
  • Установите версию развертывания на самую раннюю ОС, на которой вы хотите, чтобы ваш код запускался.
  • Для всех вызовов, которые не существуют в более ранних версиях ОС, вы должны проверить перед вызовом, либо с помощью responsedsToSelector: (для методов), либо с проверкой на ноль (для функций и статики). Вы можете, если хотите, проверить версию ОС, но более надежно проверить конкретный вызов.
  • В перекрестном руководстве по программированию описаны методы в деталях.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top