【问题标题】:How to support an application from iOS 4.3 to iOS 7 versions如何支持从 iOS 4.3 到 iOS 7 版本的应用程序
【发布时间】:2014-01-26 07:54:03
【问题描述】:

我使用 xcode 5 构建了我的应用程序以支持 ios 6 或更高版本。我希望相同的应用程序在低于 6 的版本上工作。 我没有使用自动布局。我将所有 nib 文件更改为使用 os 4.3 或更高版本构建。但不推荐使用的方法不适用于旧版本。支持多个 ios 版本的最佳方法是什么(在我的情况下为 ios 4.3到 ios 7.0)?.

【问题讨论】:

  • 为什么要支持 iOS 4.3,80% 在 iOS 7 上,其余在 6 上,有些在 5 上。4.3 几乎不使用。但除此之外,是的,请使用 NIB 并检查您调用的方法是否适用于 al 版本。如果您需要调用某个版本上不可用的方法,请使用respondsToSelector: 来检查它是否受支持。
  • 我的要求是支持从 ios 4.3 到 ios 7...OK 使用 respondToselector 会知道它是否支持。如果它不支持怎么办??

标签: iphone xcode ios4 ios7 xcode5


【解决方案1】:

请避免将部署目标设为 4.3。使用此链接目前没有使用 4.3 的设备。浪费时间

如果您想要部署目标为 4.3 的应用程序,您可以只使用本机代码或 xib。

因为自动布局不支持 4.3 和 5.0

stroyboard 不支持 4.3

https://mixpanel.com/trends/

【讨论】:

    【解决方案2】:

    http://www.raywenderlich.com/42591/supporting-multiple-ios-versions-and-devices可以给你很好的建议。

    文章的简短部分:

    不支持的类

    有时你想使用一个存在于 您的基础 SDK,但不在您的部署目标中。为此,您需要 在运行时检查此类的可用性以避免崩溃 你的应用程序。它崩溃是因为Objetive-C 运行时会这样 如果您尝试使用不存在的类,请执行此操作。从 iOS 4.2 开始, 类是弱链接的,所以你可以使用 +class 方法来执行 运行时检查。例如:

     if ([SLComposeViewController class]) {
         //Safe to use SLComposeViewController  } else {
         //Fail gracefully } 
    

    不支持的方法

    同样,如果您在基础 SDK 中使用了部署中不存在的方法 目标,您可以通过使用一点内省来避免令人讨厌的崩溃。 -respondsToSelector:+instancesRespondToSelector: 方法将 两者都可以解决问题,如下面的代码示例所示:

     if
     ([self.image respondsToSelector:@selector(resizableImageWithCapInsets:resizingMode:)])
    {
         //Safe to use this way of creating resizable images } else {
         //Fail gracefully } 
    

    验证类方法的存在也是如此,除了你在类上调用 respondsToSelector: 本身,就像这样:

    if ([UIView
     respondsToSelector:@selector(requiresConstraintBasedLayout)]) {
         //Safe to use this method } else {
         //Fail gracefully }
    

    【讨论】:

    • 不支持4.3以上的链接
    【解决方案3】:

    我想建议您的,首先按版本阻止您的代码。我的意思是为 IOS 7、IOS 6 等已弃用的方法设置块。然后尝试找出该版本支持的适当方法。但据我所知,你不能像 7 一样完全支持 4.3 版本。 正如@rckoenes 所说的80% is on iOS 7 the rest is on 6 and some are on 5. 4.3 is hardly used,所以我也不支持低于6.0。所以祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      相关资源
      最近更新 更多