iOS 7 API不适用于iOS 6和iOS 7 sdk

时间:2013-12-03 20:20:53

标签: ios ios7

iSO 7为popover引入了一个新的API

  

setPopoverContentSize:animated:

而不是

  

contentSizeForViewInPopover

在iOS6和之前使用过。由于我使用iOS7 SDK不应该是第一个API重定向自己在iOS 6上使用旧版本。为什么我必须要用if替换一个调用,否则在代码中的iOS检测。

有没有办法为iOS版本使用一个API?

4 个答案:

答案 0 :(得分:5)

  

有没有办法为iOS版本使用一个API?

是。 iOS 7中唯一明显的变化是contentSizeForViewInPopover现已弃用。另一个电话-setPopoverContentSize:animated:和相应的popoverContentSize媒体资源have been available since iOS 3.2

鉴于此,正确的方法是将代码更改为使用popoverContentSize-setPopoverContentSize:animated:。您的代码在iOS 6中可以正常运行,并且您不必担心将来某个时候通过代码来删除仅支持iOS 6的代码。

答案 1 :(得分:3)

您仍然可以使用较旧的通话,直到您觉得您只需要支持iOS7。

iOS6无法知道新呼叫的含义,因此无法重定向。

答案 2 :(得分:0)

处理这种情况的最佳方法是使用较旧的API调用,就像每个人都在这里提到的那样。如果您的部署目标是6.x,您的应用程序将编译并构建,并且您很高兴。

如果您的目标不是iOS 7,则无需担心iOS 6/7支持。

话虽如此,如果将来你转向iOS 7的目标,开发人员应该负责处理向后兼容性,而不是SDK。 SDK无法对您的代码进行假设,并将已弃用的调用重定向到较新版本....它只是不能那样工作,而且这样的系统会遇到麻烦。

此外,在这种情况下,setPopoverContentSize:animated:不是iOS7独有的,并且支持iOS3.2,所以你很高兴。

答案 3 :(得分:-1)

这可能会有所帮助:

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
   //code for iOS 6
} else {
   //code for iOS 7
}

可能是一种痛苦,但这是我们现在能做的最好的事情。