iPad с iOS 3.2 совместимость с iPhone iOS 3.0

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

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

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, этот код выдает ошибку... не поддерживается.

Так

  • Если я соберу код выше на MAC DESKTOP(с 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 ответа

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

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

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

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

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

Другие вопросы по тегам