1

这到底是什么意思?我已经看到了可用性:iOS(6.0 和更高版本)和其他版本号,但我认为这并不是它的确切含义。这真的意味着它仅适用于 iOS 6 及更高版本吗?如果是这样,那为什么 iOS 2.0f 及更高版本的类似方法会贬值?当iOS版本低于6.0或指定可用性时,我不应该仍然使用它吗?

一个例子是 NSTextAlignmentCenter。它指定它是可用性:iOS(6.0 及更高版本),但我正在为 iOS 4.3 及更高版本构建应用程序。我目前正在检查设备的 iOS 版本并选择 NSTextAlignmentCenter 和 UITextAlignmentCenter 之间的文本对齐方式。对我来说,这似乎很奇怪。不应该适用于 iOS SDK 6.0 及更高版本,而不是 iOS 6.0 及更高版本吗?

我知道这看起来有点吹毛求疵,但它有很大的不同。

4

4 回答 4

3

我已经看到了可用性:iOS(6.0 和更高版本)和其他版本号,但我认为这并不是它的确切含义。这真的意味着它仅适用于 iOS 6 及更高版本吗?

是的,这确实意味着仅在 iOS 6 及更高版本中可用。

您链接到应用程序的大多数 Apple 提供的框架都是动态的——它们不是内置在您的应用程序中,而是在应用程序启动时链接。它们作为操作系统的一部分存在于设备上。这意味着进行追溯更改(例如添加新方法)既困难又不可能。重要的更改(例如安全修复)通常在次要操作系统更新中进行。API 的功能更改通常保留用于更重要的升级。

某些更改确实会追溯发生。例如,对象字面量不仅适用于 iOS 6,而且适用于 5 和(我认为)甚至 4。这是因为在对象字面量的情况下,变化发生在编译器中,而不是在操作系统或框架中。只要您使用的是理解对象文字语法的编译器,编译器发出的目标代码就会与旧系统兼容。

于 2012-09-13T22:17:48.330 回答
1

这意味着您可以从这个 xx OS 版本开始使用它。

请以下列方式考虑这一点——包括 API 在内的每个功能都有其诞生的初始版本 (xx)。它存在了一段时间(通过几个版本),在某些时候它变旧了(新功能可以做同样的事情,但更好)并且它被标记为已弃用。它仍然可以使用,但不再推荐。并且在某个时刻,此功能/API 会死掉(变得不受支持)。

因此,如果您计划支持 iOS 4.3 及更高版本,您将不得不选择在 iOS 4.3 到 6.0 中存在的功能(已经诞生,但尚未死去)。

于 2012-09-13T22:04:03.217 回答
1

这意味着它所说的。如果它显示“2.0 及更高版本”,那么您可以在任何面向 SDK 2.0 或更高版本的应用程序中安全地使用它。

于 2012-09-13T21:59:27.943 回答
0

它不是指 SDK 版本 - 它是 iOS 版本。iOS 的每个版本都添加了它支持的新 API,因此您不能使用该版本中不存在的 API(如 NSTextAlignmentCenter)。

于 2012-09-13T22:12:45.477 回答