1

我正在开发一个我想要支持 Air Play 的 iPhone 应用程序。我的应用程序应该能够在 iOS 4.1 及更高版本的 iPhone 设备上运行。所以,我在我的应用程序的目标设置中选择了 iOS 4.3 作为基础 SDK 和 4.1 作为部署目标。现在,我想在 MPMoviePlayerController 上添加设置标志 allowedAirPlay 的代码。这仅在 iOS 4.3 SDK 中受支持。XCode 应用程序目标设置应该是什么以及应该如何编写代码以便

  1. 它也可以在未安装 iOS 4.3 SDK 的系统中编译。
  2. 它可以在所有 iOS > 4.1 的 iPhone 设备上正常运行
  3. 在装有 iOS 4.3 的 iPhone 设备中,Air Play 功能已启用。
4

2 回答 2

2

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

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

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

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

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

于 2011-03-30T11:29:25.743 回答
0

我已经这样做了:

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

它工作正常。可以调整这两个答案之一。

于 2011-03-30T12:45:26.507 回答