版本适配#

本书所述均为 Swift 5.7 版本内容,这也是 Xcode 14 中的默认 Swift 版本。你可以在 Xcode 14 中用 Swift 5.7,Swift 4.2 或 Swift 4 来编码并构建目标。

当你用 Xcode 14 来构建 Swift 4 和 Swift 4.2 的代码时,Swift 5.7 的大部分功能都是可供支持的。但需要说明的是,以下的变动内容仅在使用 Swift 5.7 或更高版本时才可供支持:

  • 返回值类型为不透明类型的函数需要 Swift 5.1 运行时支持。

  • try? 表达式不会为已经返回可选值的表达式提供额外的层级选择性。

  • 更大的整数型字面值的初始化表达式可以被推导为更准确的整数型。比如, UInt64(0xffff_ffff_ffff_ffff) 可以被准确地按其字面值来推导,而不是反馈数值溢出。

对并发性而言,需要 Swift 5.7 或更高版本,以及拥有 Swift 标准库来提供相应并发性类型的版本。对于 Apple 现有平台而言,目标的版本需要至少设定为 iOS 15,macOS 12,tvOS 15 或 watchOS 8.0。

使用 Swift 5.7 编码的目标可以依赖于使用 Swift 4.2 或 Swift 4 编写的目标,反之亦然。也就是说,如果你已有一个可划分为多个框架的巨大工程,你可以将你的框架代码逐步从 Swift 4 迁移至 Swift 5.7。