2012-09-13 48 views
1

这是什么意思?我见过可用性:iOS(6.0及更高版本)和其他版本号,但我不认为这正是它的意思。这是否真的意味着它仅适用于iOS 6或更高版本?如果是这样的话,那么为什么iOS 2.0f和以后的媲美的方法折旧?当iOS版本低于6.0或指定的可用性时,我还不应该使用它吗?“适用于iOS x.x及更高版本”是什么意思?

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

我知道这看起来很挑剔,但它有很大的不同。

+0

您是否尝试过在iOS版本早于6的应用中使用标记为“iOS 6及更高版本”的方法?快速测试可能会回答你的问题。 – Caleb

+0

@Caleb那么,我还没有尝试过,但我仍然困惑它为什么说贬值。那真是让我失望。 – RileyE

+1

请注意,苹果使用的术语是*弃用*,而不是*折旧*。看起来像挑剔,但人们会明白,如果您使用Apple使用的术语,您正在谈论苹果对特定方法的立场。例如,在iOS 5中标记为“已弃用”的方法仍然存在于iOS 5中,以便与旧应用程序兼容,但您注意到它们可能会在未来版本中消失。您应该a)避免在新应用程序中使用它们,并且b)更新现有的应用程序以避免使用它们。如果您的目标是较旧的iOS版本,您可能仍然需要它们,但您应该了解它们存在的风险。 – Caleb

回答

3

我见过可用性:iOS(6.0及更高版本)和其他版本号, 但我不认为这正是它的意思。它真的意味着它仅在iOS 6和更高版本上可用吗?

是的,它确实意味着只适用于iOS 6及更高版本。

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

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

+0

你能给我一个对象文字的例子吗?我只能想到文字方面的typedefs。 – RileyE

+2

@RileyE当然:'@ 42'为您提供了一个值为42的NSNumber。有关更多示例,请参见[docs](http://clang.llvm.org/docs/ObjectiveCLiterals.html)。 – Caleb

+0

哇。我知道NSString和NSNumber文字(但我甚至没有考虑它们,因为它们看起来很常见),但我对其他文字没有线索!我想还有很多我可以学习的东西。不过,我仍然是一个新手。再次感谢! – RileyE

1

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

1

这意味着您可以从此x.x操作系统版本开始使用它。

以下面的方式思考这个问题 - 包括API在内的每个功能都有其出生的初始版本(x.x)。它存在一段时间(通过几个版本),并且在某些时候它变老(新功能可以做同样的事情,但更好),它被标记为已弃用。它仍然可以使用,但不再推荐。在某些时候,这个特性/ API会死掉(变得不受支持)。因此,如果您打算支持iOS 4.3及更高版本,则必须选择iOS 4.3至6.0中已存在的功能(但尚未完成)。

+0

所以,折旧并不意味着“不要使用这个”。这仅仅意味着对于以后的iOS版本有一个更新的方法,但是这可以用于当前较老的iOS版本。如果您发布使用“死亡”且未更新的方法的应用程序,会发生什么情况? – RileyE

+1

是的。究竟。弃用意味着“它很快就会消失,所以不要使用它”。如果您尝试使用已死的方法,那么您的应用程序将失败。但是,公司杀死一个API相当罕见,因为所有使用这些API的应用程序都将停止工作。 –

+0

好的。非常感谢你的帮助!对此,我真的非常感激。这真的清除了我的问题的折旧方法部分。我希望我可以接受两个答案.. – RileyE

0

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

相关问题