Как избежать проблем слабых ссылок в фреймворке XCode?
Я создаю приложение, использующее преимущества технологий Mac OS X 10.6, но не отказываясь от обратной совместимости с 10.5 Leopard.
Я делаю это, устанавливая 10.6 SDK в качестве базового SDK, слабо связывая все платформы и устанавливая цель развертывания 10.5, как описано в:
Это отлично работает; перед тем как сделать звонок только для Snow Leopard, мне нужно проверить, действительно ли существует селектор или класс. Или я могу просто проверить версию ОС перед звонком.
Проблема в том, что это невероятно хрупко. Если я сделаю один звонок, который равен только 10.6, я потеряю совместимость с Leopard. Поэтому использование даже обычной функции завершения кода может быть опасным.
Мой вопрос: есть ли способ проверить, какие вызовы не определены в 10.5, перед сборкой релиза? Подойдет какой-то статический анализ или даже просто хитрость (цель, установленная другим SDK?).
Я, очевидно, должен тестировать на машине Leopard перед выпуском чего-либо, но даже в этом случае я не могу пройти через все пути программы перед каждым выпуском.
Любой совет будет принят во внимание.
С наилучшими пожеланиями,
Фрэнк
1 ответ
Вы можете изменить целевой SDK на 10,5. Затем компилятор выведет warning: definition for '-snowLeopardOnlyMethod:' not found
Сообщения.