如何支持从 iOS 4.3 到 iOS 7 版本的应用程序

How to support an application from iOS 4.3 to iOS 7 versions

提问人:sujay 提问时间:1/8/2014 最后编辑:kyrylomyrsujay 更新时间:1/8/2014 访问量:639

问:

我使用 Xcode 5 构建了我的应用程序以支持 iOS 6 或更高版本。我希望同一个应用程序在低于 6 的版本上运行。 我没有使用自动布局。我更改了所有笔尖文件以使用 os 4.3 或更高版本构建。但是不推荐使用的方法在旧版本上不起作用,支持多个ios版本(在我的情况下是ios 4.3到ios 7.0)的最佳方法是什么?

iPhone Xcode iOS4 IOS7 XCode5

评论

3赞 rckoenes 1/8/2014
为什么支持iOS 4.3,80%在iOS 7上,其余在6上,有些在5上。4.3 几乎不使用。但撇开这一点不谈,是的,使用 NIB 并检查您调用的方法是否适用于所有版本。如果需要调用某个版本上不可用的方法,请使用以检查它是否受支持。respondsToSelector:
0赞 sujay 1/8/2014
我的要求是支持从 ios 4.3 到 ios 7 的设备......OK 使用 respondToselector 将了解它是否受支持。如果不支持该怎么办?
0赞 Chethan Shetty 1/8/2014
看看这个问题...stackoverflow.com/questions/12776932/......

答:

2赞 codercat 1/8/2014 #1

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

如果要将部署目标为 4.3 的应用程序,则可以仅使用本机代码或 Xib。

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

stroyboard 不支持 4.3

enter image description here

https://mixpanel.com/trends/

3赞 Mikael 1/8/2014 #2

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

文章的简短部分:

不支持的类

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

 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 }

评论

0赞 codercat 1/8/2014
不支持 4.3 以上链接
2赞 Tapas Pal 1/8/2014 #3

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