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

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

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

(Звонок мне нужно сделать, чтобы -[NSWindow setCollectionBehavior:]).

1 ответ

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

В руководстве по программированию кросс-разработки подробно описаны методы.

Другие вопросы по тегам