позволяет поддержку AirPlay и iOS 4.2, iOS4.3 - PullRequest
1 голос
/ 21 марта 2011

Я занимаюсь разработкой приложения для iPhone, в котором хочу поддерживать Air Play.Мое приложение должно быть в состоянии работать на устройстве iPhone с iOS 4.1 и выше.Итак, я выбрал iOS 4.3 в качестве базового SDK и 4.1 в качестве цели развертывания в настройках цели моего приложения.Теперь я хочу добавить код установки флага allowAirPlay на MPMoviePlayerController.Это поддерживается только в iOS 4.3 SDK.Какими должны быть настройки цели приложения XCode и как должен быть написан код, чтобы

  1. он также компилировался в системе, в которой не установлен iOS 4.3 SDK.
  2. он запускаетсяправильно на всех устройствах iPhone с iOS> 4.1
  3. На устройстве iPhone с iOS 4.3 функция Air Play включена.

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

Вам нужно заставить замолчать предупреждения компилятора, объявив метод в категории в верхней части вашего файла реализации:

@interface MPMoviePlayerController(MEKAirPlay)
- (void)setAllowsAirPlay:(BOOL)supports;
@end

Затем проверьте, что метод действительно реализован, прежде чем вызывать его:

if ([player respondsToSelector:@selector(setAllowsAirPlay:)]) {
  [player setAllowsAirPlay:YES];
}

Вы также можете обернуть определение категории в препроцессоре #if, чтобы оно не отображалось при компиляции с iOS 4.3 SDK, хотя я этого еще не сделал. У меня не установлены более ранние SDK, поэтому я не могу это проверить.

0 голосов
/ 30 марта 2011

Я сделал это следующим образом:

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_4_2
        mMoviePlayerController.allowsAirPlay = YES;        
#endif

Работает нормально. Один из этих двух ответов может быть адаптирован.

...