Как включить вызовы методов, присутствующих только в одной версии операционной системы, при компиляции нескольких версий?
У меня есть приложение, которое компилируется с минимальным системным требованием Tiger (OS X 10.4), но мне нужно включить некоторый код для работы с Spaces, если приложение выполняется на Leopard (OS X 10.5).
Как мне это сделать?
(Звонок мне нужно сделать, чтобы -[NSWindow setCollectionBehavior:]
).
1 ответ
Решение
- Установите базовый SDK (для всех конфигураций целевого объекта, который вы создаете) на версию ОС, которая включает вызов.
- Установите версию развертывания на самую раннюю ОС, на которой вы хотите, чтобы ваш код запускался.
- Для всех вызовов, которые не существуют в более ранних версиях ОС, вы должны протестировать перед вызовом, либо с помощью responsedsToSelector: (для методов), либо с проверкой на nil (для функций и статики). Вы можете, если хотите, проверить версию ОС, но более надежно проверить конкретный вызов.
В руководстве по программированию кросс-разработки подробно описаны методы.