allowsAirPlay支持iOS 4.2,iOS4.3

时间:2011-03-21 05:01:31

标签: ios4 compilation ios-4.2 airplay

我正在开发一个iPhone应用程序,我希望在其中支持Air Play。我的应用程序应该能够在iOS设备上运行iOS 4.1以上。因此,我在我的应用程序的目标设置中选择了iOS 4.3作为Base SDK和4.1作为部署目标。 现在,我想在MPMoviePlayerController上添加设置标志allowsAirPlay的代码。仅在iOS 4.3 SDK中支持此功能。 什么应该是XCode应用程序目标设置以及如何编写代码以便

  1. 它还会在未安装iOS 4.3 SDK的系统中编译。
  2. 它在iOS>所有iPhone设备中正常运行4.1
  3. 在配备iOS 4.3的iPhone设备中,启用了播放功能。

2 个答案:

答案 0 :(得分:2)

您需要通过在实现文件顶部的类别中声明方法来使编译器警告静音:

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

然后,在调用之前检查方法是否已实际实现:

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

您还可以将类别定义包装在预处理器#if中,以便在使用iOS 4.3 SDK进行编译时阻止它被看到,尽管我还没有这样做。我没有安装早期的SDK,所以我无法真正测试它。

答案 1 :(得分:0)

我做了如下:

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

工作正常。可以调整这两个答案中的一个。