我需要澄清swift 3兼容性和API可用性之间的区别

问题描述:

一些示例:在swift 2中,我们有NSData和NSUrl;在swift 3我们有数据和URL。如果你点击数据,它可以从iOS 10或更高版本中获得。我需要澄清swift 3兼容性和API可用性之间的区别

请有人可以解释以下内容:如果苹果文档声称只有iOS 10和更高版本才提供某些内容,那么这是否意味着我只能将它用于目标为iOS 10或更高版本的应用程序?

我读过Swift 3与iOS 8兼容,但这些变化(例如NSData到Data)是从Swift 2移动到3的一部分。所以如果Data仅在iOS 10和更高版本中可用, Swift 3与iOS 8兼容意味着什么?

我想,实质上,我对API可用性和Swift 3兼容性的区别感到困惑。

非常感谢您的帮助。

如果苹果文档声称只能从iOS 10或更高版本获得某些内容,是否意味着我只能将它用于目标为iOS 10或更高版本的应用程序?

不可以。Apple文档的可用性部分可能会显示两种不同类型的信息 - SDK可用性和目标操作系统可用性。

Data的情况下,Data标准库代码是用于所有iOS的8和更高版本兼容,但标准库包括Data(SWIFT 3标准库)被包括仅在IOS SDK 10或更高版本,可用性部分苹果公司的文档代表了这个含义中的“可用性”。

This thread in the Apple's dev forums会有一些帮助。通常,您可以依赖Xcode/Swift的可用性检查功能。当您将项目的最低目标标记为iOS 8.0并且没有关于可用性的警告时,项目中使用的所有功能都应在iOS 8.0设备上运行。

您可以发送bug report作为文档错误。

+0

谢谢。好的,所以“iOS 10及更高版本中可用”这个短语有点含糊不清;它可以指i)仅适用于安装了iOS 10的手机,或者2)仅在使用iOS 10 SDK时可用。我从这个讨论中脱离出来:'依靠Xcode的可用性检查功能'。 –