Как избежать проблем слабых ссылок в фреймворке XCode?

Я создаю приложение, использующее преимущества технологий Mac OS X 10.6, но не отказываясь от обратной совместимости с 10.5 Leopard.

Я делаю это, устанавливая 10.6 SDK в качестве базового SDK, слабо связывая все платформы и устанавливая цель развертывания 10.5, как описано в:

http://developer.apple.com/mac/library/DOCUMENTATION/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html

Это отлично работает; перед тем как сделать звонок только для Snow Leopard, мне нужно проверить, действительно ли существует селектор или класс. Или я могу просто проверить версию ОС перед звонком.

Проблема в том, что это невероятно хрупко. Если я сделаю один звонок, который равен только 10.6, я потеряю совместимость с Leopard. Поэтому использование даже обычной функции завершения кода может быть опасным.

Мой вопрос: есть ли способ проверить, какие вызовы не определены в 10.5, перед сборкой релиза? Подойдет какой-то статический анализ или даже просто хитрость (цель, установленная другим SDK?).

Я, очевидно, должен тестировать на машине Leopard перед выпуском чего-либо, но даже в этом случае я не могу пройти через все пути программы перед каждым выпуском.

Любой совет будет принят во внимание.

С наилучшими пожеланиями,

Фрэнк

1 ответ

Вы можете изменить целевой SDK на 10,5. Затем компилятор выведет warning: definition for '-snowLeopardOnlyMethod:' not found Сообщения.

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