为什么 iOS 9 种方法在 iOS 8.4 上仍然有效?

Why Do iOS 9 Methods Still Work on iOS 8.4?

我想在我的一个项目中使用 @warn_unused_result @rethrows func filter(@noescape includeElement: (Self.Generator.Element) throws -> Bool) rethrows -> [Self.Generator.Element] 方法。该应用程序应 运行 iOS 8 及更高版本。如果我在文档中查找该方法,它会显示 "Availability: iOS (9.2 and later)"

但是,如果我在 iOS 8.4 上调用该方法,它会工作 w/o 任何问题。

知道为什么文档说 iOS 9.2 但它仍然适用于 iOS 8.4 吗?那么我可以将其称为 w/o 任何可用性检查并确保它将来不会崩溃吗?

提前致谢!

这是Swift标准库的一部分,完全不依赖于iOSSDK。 Swift 运行时与应用程序捆绑在一起,因此对于系统而言,编写哪个版本的 Swift 应用程序并不重要。我认为此可用性标记可能与所做的更改有一些共同点filter 中的 Swift 函数 2. 查看这两个文档: Swift 2.1 Swift 1.2

如您所见,这两个方法的声明是不同的。