#iphone #ios #ipad
#iPhone #iOS #iPad
Вопрос:
Я переключаю свой SDK с iOS4 на iOS5 и хочу использовать некоторые функции iOS5 в своих старых проектах iOS4.
Что произойдет, если я использую некоторые функции iOS5, но целью развертывания является устройство iOS4?
Спасибо.
Комментарии:
1. Смотрите также marco.org/2010/11/22 /…
Ответ №1:
это просто приведет к сбою, скорее всего, из-за нераспознанного селектора.
чтобы избежать этого, вы можете изменить код с помощью if()-операторов
Нравится
if([object respondsToSelector:@newiOS5Selector])
Кроме того, вы можете прочитать текущую версию iOS через UIDevice
(BOOL)platformSupportsVersion:(NSString *)requiredVersion
{
float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= [requiredVersion floatValue]) {
return YES;
}
return NO;
}
Комментарии:
1. Спасибо. Тогда мне лучше держаться подальше от новых функций в моих старых проектах и разделить проекты на версии iOS4 и iOS5.
2. вам не нужно оставаться в стороне от функций! вам просто нужно поддерживать обе версии в коде с помощью соответствующих операторов if
3. я добавил в свой ответ пример кода, чтобы упростить поддержку разных версий платформы
Ответ №2:
Эти функции будут работать только на устройствах с установленной iOS5
или более поздней версией.
Если вы вызовете new iOS5 API
на устройствах с предыдущими версиями iOS
(4.x), в этих местах произойдет сбой.