iPad с iOS 3.2 совместимость с iPhone iOS 3.0 - PullRequest
1 голос
/ 03 августа 2011

Недавно успешно отправили приложение для iPhone и iPod Touch в магазин приложений, но позже стало известно, что оно не работает на iPad 3.2, но работает на iPad с высокой iOS, такой как 4, в уменьшенной версии.

Причина: свойство setOrientation проигрывателя фильмов.

Actual Query : чтобы заставить его работать на iPad 3.2 в MAC Desktop, я использовал

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        player.view.frame = CGRectMake(0, 0, 768, 1024);
        [self.view addSubview:player.view];
        [player play];
    }
    else {
                #ifdef __IPHONE_4_0
                     player.controlStyle = MPMovieControlStyleNone;
                #else
                     [player setOrientation:UIDeviceOrientationPortrait animated:NO];
}

, когда язапустить тот же код на моей MAC BOOK с iOS 3.0, этот код выдает ошибку ... не поддерживается.

Итак

  • Если я создаю вышеуказанный код на MACDESKTOP (с iOS 4) это будет работать на устройстве iPhone с iOS 3.0?... в ссылке на Event Kit Frame Work (которая выдает ошибку в iOS 3.0 .. но требуется в iOS 4).

  • Мне нужно перейти на отдельное приложение для iPad вместо Universal?

  • Есть ли разница в iPhone с iOS 3.2 и iPad с iOS 3.2 с точки зрения используемых свойств?

Ответы [ 2 ]

0 голосов
/ 03 августа 2011

Хорошо, в первую очередь не имеет значения, используете ли вы рабочий стол Mac или MacBook для компиляции. Похоже, вы путаете значение «минимальный iOS» и «базовый SDK».

Базовый SDK: ссылается на библиотеку кода, которую компилятор будет использовать для проверки вашего кода, но не определяет, на какой операционной системе ваше приложение будет работать. У вас может быть базовый SDK 5.0, и ваше приложение все еще может нормально работать в системе 3.0. Уловка в том, что если вы используете код, который совместим с вашим базовым SDK, а не с более старыми ОС, компилятор не будет его ловить.

Минимальная ОС: это значение определяет, на какой ОС будет работать ваше приложение.

Если вы используете код для более высоких ОС, но хотите работать на более низких ОС, вам нужно проверить код, для которого вы работаете, а затем запустить соответствующий код для этой платформы.

0 голосов
/ 03 августа 2011

Не думаю, что вы должны жестко кодировать это во время компиляции. Вместо этого вы должны проверить, существует ли определенный класс или метод / свойство в классе, а затем сделать соответствующую вещь. Например, использовать [NSObject responsedstoSelector:] для проверки того, понимает ли ваш объект определенный метод.

...