Что произойдет, если я использую некоторые функции iOS5, но целью развертывания является устройство iOS4?

#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), в этих местах произойдет сбой.