Я работаю над приложением для iOS. Я хочу, чтобы оно поддерживало iOS 7 и 8. Все идет хорошо, однако есть много разных частей приложения, которые используют Apple API. Некоторые из этих API работают как в iOS 8, так и в 7. Однако некоторые из них устарели в iOS 8. Поэтому я зашел на сайт разработчиков Apple, чтобы посмотреть, чем их заменить (новые методы/и т. д.).
Однако теперь у меня есть проблема, что приложение будет работать на iOS 8 нормально, но некоторые его части не работают должным образом на iOS 7, так как я пытаюсь использовать API iOS 8...... (смеется) .
Поэтому я просто хотел узнать, как лучше всего реализовать код, который работает на iOS 8 и 7. У меня было несколько идей (ниже), но я не уверен, что лучше:
ИДЕЯ 1
Всякий раз, когда у меня есть код, который не работает на обеих ОС, я использую функцию if (которая вызывает макрос) следующим образом:
if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
// iOS 7 device. Use iOS 7 apis.
}
else {
// iOS 8 (or higher) - use iOS 8 apis.
}
ИДЕЯ 2
Я думал об использовании определений ifdef во всем приложении, например:
#ifdef __IPHONE_8_0
// iOS 8 code here....
#else
// iOS 7 code here....
#endif
Какой способ лучше? Я бы подумал, что вторая идея намного быстрее и использует меньше ресурсов, верно?
Или обе мои идеи ерунда? Есть ли лучший способ решения этой проблемы?
Спасибо за ваше время, Дэн.