这究竟是什么意思?我见过可用性: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及更高版本吗?
我知道这似乎是挑剔,但它会产生很大的不同。
答案 0 :(得分:3)
我见过可用性:iOS(6.0及更高版本)和其他版本号, 但我不认为这究竟是什么意思。它真的意味着什么吗? 它仅适用于iOS 6及更高版本?
是的,它确实仅适用于iOS 6及更高版本。
您链接到应用程序的Apple提供的大多数框架都是动态的 - 它们不是内置到您的应用程序中,而是在应用程序启动时链接。它们作为操作系统的一部分存在于设备上。这意味着进行追溯性更改(例如添加新方法)介于困难和不可能之间。重要更改(例如安全修复程序)通常在次要操作系统更新中进行。 API的功能更改通常保留用于更重要的升级。
某些变化确实会追溯发生。例如,对象文字不仅可以在iOS 6中工作,而且可以在5和(我认为)甚至4中工作。这是因为在对象文字的情况下,更改是在编译器中,而不是在操作系统或框架中。只要您使用的是能够理解对象文字语法的编译器,编译器发出的目标代码就会与旧系统兼容。
答案 1 :(得分:1)
这意味着它所说的。如果它显示“2.0及更高版本”,那么您可以在任何面向SDK 2.0或更高版本的应用中安全地使用它。
答案 2 :(得分:1)
这意味着您可以从此x.x OS版本开始使用它。
以下列方式考虑这一点 - 包括API在内的每个功能都具有初始版本(x.x)。它存在一段时间(通过几个版本),并且在某些时候它变得陈旧(新功能可以做同样的事情,但更好)并且它被标记为已弃用。它仍然可以使用,但不再推荐了。在某些时候,这个功能/ API会死掉(变得不受支持)。
所以,如果你计划支持iOS 4.3及更高版本,你将不得不选择在iOS 4.3到6.0中已经存在的功能(已经诞生但尚未死亡)。
答案 3 :(得分:0)
它不是指SDK版本 - 它是iOS版本。每个版本的iOS都添加了它支持的新API,因此您无法使用该版本中不存在的API(如NSTextAlignmentCenter)。