1

最近成功将 iPhone 和 iPod Touch 应用程序提交到应用商店,但后来才知道这在 iPad 3.2 上不起作用,但在缩放版本的 iOS 4 等高 iOS 的 iPad 上工作。

原因:电影播放器​​的 setOrientation 属性。

实际查询:为了使其在 MAC 桌面的 iPad 3.2 上工作,我使用了

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];
}

当我使用 iOS 3.0 在我的 MAC BOOK 上运行相同的代码时,此代码会引发错误...不支持。

所以

  • 如果我在 MAC DESKTOP(使用 iOS 4)上构建上面的代码,它会在使用 iOS 3.0 的 iPhone 设备上工作吗?..引用 Event Kit Frame Work(在 iOS 3.0 中引发错误 ..但在 iOS 4 中是必需的)。

  • 我需要使用单独的 iPad 应用程序而不是 Universal 吗?

  • 安装 iOS 3.2 的 iPhone 和安装 iOS 3.2 的 iPad 在使用的​​属性方面有什么不同吗?

4

2 回答 2

0

我认为您不应该在编译时那样对其进行硬编码。相反,您应该测试一个特定的类或类上的方法/属性是否存在,然后做适当的事情。就像使用 [NSObject respondstoSelector:] 来测试您的对象是否理解特定方法一样。

于 2011-08-03T14:14:43.183 回答
0

好的,首先不管你是用Mac桌面还是MacBook编译。看起来您可能会混淆“最低 iOS”值和“基本 SDK”。

基础 SDK:指编译器将用于检查您的代码的代码库,但不能确定您的应用程序将实际运行在哪个操作系统上。您可以拥有 5.0 的基础 SDK,并且您的应用程序在 3.0 系统上仍然可以正常工作。问题是,如果您使用的代码与您的 Base SDK 兼容,而不是旧操作系统,编译器将无法捕获它。

最低操作系统:此值确定您的应用将在哪个操作系统上运行。

如果您正在使用更高操作系统的代码但想在较低操作系统上运行,您需要测试您正在运行的操作系统的代码,然后为该平台运行适当的代码。

于 2011-08-03T14:15:03.440 回答