【问题标题】:iPad with iOS 3.2 compatibility with iPhone iOS 3.0iPad 与 iOS 3.2 与 iPhone iOS 3.0 的兼容性
【发布时间】:2011-10-19 01:49:52
【问题描述】:

最近成功将 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 设备上? ..参考事件套件框架 工作(在 iOS 3.0 中会引发错误。但在 iOS 4 中是必需的)。

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

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

【问题讨论】:

  • “iOS 3.2 的 iPhone 和 iOS 3.2 的 iPad 有什么区别吗?”没有任何适用于 iPhone 的 iOS 3.2。这是一个仅限 iPad 的版本。

标签: iphone ios ipad ipod-touch universal-code


【解决方案1】:

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

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

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

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

【讨论】:

  • 我对 Mac Desktop n mac book 的理解是 Mac Desktop 有 x-code 3.2.4 和 iOS 3.2 及更高版本,而 Mac Book 有不同版本的 x-code 有 iOS 3.0
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多