Рекомендуемый способ поддержки обратной или прямой совместимости в приложении для 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-интерфейсами.