Рекомендуемый способ поддержки обратной или прямой совместимости в приложении для iPhone?

Я нахожусь на ранних этапах приложения для iPhone, и у меня есть вопрос. Я сделал несколько поисков, но не нашел то, что искал.

В iPhone OS4 есть функции, которые я бы хотел использовать, но я хотел бы, чтобы мое приложение также работало на 3.X.

Похоже, я хочу разработать против SDK 4.0 и сделать следующее:

  • Создайте "слабую ссылку" для любых новых (4.0) фреймворков
  • Вызовите respondsToSelector: для любого новый метод в существующей структуре или любой метод в новой структуре перед тем, как сделать этот вызов

Я закрываю? Что рекомендуется?

Указатели на подобные вопросы приветствуются.

UPDATE: Так же, как примечание - если вы пытаетесь проверить новую структуру, лучше всего называть respondsToSelector: методом класса против объекта класса вместо использования метода экземпляра.

Ответы

Ответ 1

Да, именно так вы это делаете!

Единственный трюк, о котором я могу думать, о котором вы уже не говорили, заключается в том, что вы создаете против последнего SDK (т.е. 4.0 в этом случае) и установите цель как можно раньше (3.0 в этом случае).

Вы можете попробовать использовать SDK 3.2 для создания универсального приложения (iPhone/iPad). Это шаблон Apple, который использует этот же метод для работы с двумя различными API-интерфейсами.