MPMoviePlayerViewController для старых версий iPhone SDK

Если я использую MPMoviePlayerViewController в 3.2/4.0, он отлично строится.

Если я использую его в 3.1.3 и ниже, сборка завершается с ошибкой.

Expected specifier-qualifier-list before MPMoviePlayerViewController'

Я использую этот класс в 113 местах, поэтому получаю 113 ошибок.

Каков наилучший способ исправить эту критическую проблему?


person David van Dugteren    schedule 10.08.2010    source источник


Ответы (1)


Я имел дело с точно такой же проблемой, как и вы. К сожалению, если вы хотите, чтобы он работал хорошо, нет никакого способа обойти "двойное кодирование" ваших ViewController'ов, связанных с moviePlayer.

Таким образом, в вашей реализации для 3.0 вам придется использовать MPMoviePlayerController (который имеет определенные ограничения по сравнению с более новой реализацией MPMoviePlayerViewController).

person samsam    schedule 10.08.2010
comment
Итак, вы говорите, что мне по существу нужны две отдельные сборки? Один для 3.2 и выше, а другой для 3.1.3 и ниже? Как будто мне действительно нужно отправить приложение дважды? - person David van Dugteren; 10.08.2010
comment
нет, нет, ты меня неправильно понял. что вам нужно сделать, это дважды реализовать ТОЛЬКО ваши MoviePlaying-ViewControllers, тогда у вас есть, например, ваш MoviePlaybackViewController3 и MoviePlaybackViewController4, первый из которых использует MPMoviePlayerController, последний - с помощью MPMoviePlayerViewController... затем в вашем приложении различают ОС, в которой приложение в настоящее время работает. следовательно, загрузите/отобразите версию вашего MoviePlaybackViewController. - person samsam; 10.08.2010
comment
Из различных потоков и проволочек я обнаружил, что единственный известный способ сделать это — использовать практику: Class classToCheck = (NSClassFromString(@MPMoviePlayerViewController)); if (classToCheck != nil ) { Использовать новый код SDK } else { Использовать старый код SDK. } - person David van Dugteren; 11.08.2010