SwiftUI向后兼容iOS 12.x及更早版本吗?




ios12 (6)

可能 是向后兼容的

Swift 5.1尚未发布, SwiftUI 使用了诸如 opaque返回类型 DSL propertyDelegate (在WWDC中作为 propertyWrapper 引入)等功能,这些功能 在Swift 5.1中可用。 由于Swift 5是二进制稳定的,我猜不可能在Xcode11中使用嵌入式swift-framework,因此他们在Cocoa的核心中重新实现了这些功能,并将它们标记为iOS13 +,直到Swift 5.1发布。

我的假设是基于以下事实: Ordered Collection Diffing DSL 将在Swift 5.1中可用并且与Xcode或Apple的生态系统没有相关性,但它们也被标记为 @available(iOS13,...) 。 这意味着他们必须使用具有iOS可用性属性的Swift 5.1功能来标记所有内容。 一旦Swift 5.1发布,其中一些将被删除,但除非Apple另有说明,否则我们无法确定 SwiftUICombine DSL 的提案中也提到了这一点:

实施: PR 。 请注意,Xcode开发人员预览中的实现使用比此处描述的更简单的转换。 链接的 PR 反映了预览中的实现,但正在积极开发以匹配此提议。

因此,当Swift 5.1发布时,可能会解除向后的不兼容性限制,但 苹果团队 确实 需要澄清 它。

如果我有一个使用swiftUI制作的应用程序,它是否适用于iOS 13以下的iOS?




我不这么认为,因为所有库都已经注释了iOS 13或更高版本。

此外,在 documentation ,Apple明确提到了受支持的版本:

  • iOS13.0 + beta
  • macOS10.15 + beta
  • tvOS 13.0+ beta
  • watchOS 6.0+ beta


正如大家所说,它不会向后兼容旧的iOS版本。 但考虑到Apple一直拥有其最新iOS的高安装基础,并且还考虑到iOS 13需要iPhone 6S或更高版本,iPad Air 2或更高版本,新iPad mini 4和iPhone SE。 绝大多数用户将能够安装iOS 13并享受可爱的SwiftUI应用程序。


documentation 需要iOS 13或更高版本,macOS 15或更高版本,tvOS 13或更高版本或watchOS 6或更高版本的部署目标。 该框架包含许多旧版本操作系统上不存在的新类型。





swiftui