管理iOS6和iOS7支持的最佳方法是什么?

时间:2014-05-21 07:32:10

标签: ios objective-c

我始终有应用要求同时支持iOS6iOS7。但由于iOS6支持,我无法使用iOS7的某些功能。

例如,我必须执行UIView反弹动画,iOS6我必须使用CAKeyframeAnimationUIView动画执行此操作,但iOS7UIKit dynamics为我提供UIDynamicAnimator课程,我可以使用它。

因此,我应该始终使用CAKeyframeAnimationUIView动画之类的旧方法,因为它同时支持iOS6iOS7,或者通过检查iOS版本来同时写入?

3 个答案:

答案 0 :(得分:1)

从iOS 6版本中无情地剥离需要ios7功能的东西,特别是如果它们是像弹跳动画这样的装饰性东西。

当对此提出质疑时,请告诉您的客户,他们可以花费80%的开发预算来支持不断萎缩的无关用户群,或者他们可以获得真实。 API兼容性只是6到7之间的一个难题。布局问题要困难得多。今天写的任何新应用程序都需要一个非常非常好的理由支持6,特别是8即将到来。

答案 1 :(得分:0)

我认为最好的方法是检查iOS版本并实现两种代码变体。

是的,也许,这是相当多的工作,但在大多数情况下,新iOS版本中提供的最新功能更灵活,更易于理解/集成。在大多数情况下,他们也更加支持。他们得到了Apple的支持,他们更加谨慎,并且他们被弃用的可能性很小。

您可以使用Foundation运行时变量NSFoundationVersionNumberNSFoundationVersionNumber_iOS_6_1宏来划分代码:

if (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1) {
    // write iOS 7+ code here 
} 
else {
    // write iOS 6.1- code here 
}

注意,有时一些最近发布的API可能非常原始。在这种情况下,您应该单独决定是否确实需要立即迁移。

答案 2 :(得分:0)

您可以使用class API检查课程的可用性。

if ([UIPrintInteractionController class]) {
   // Create an instance of the class and use it.
}
else {
   // The print interaction controller is not available.
}

有关详细信息,请参阅以下链接Advanced App Tricks