【发布时间】:2020-06-10 21:30:11
【问题描述】:
我有一个项目需要支持旧版本的 iOS,我正在尝试使用 SwiftUI 来创建仅在用户使用 iOS 13 或更高版本时才会出现的视图。 Xcode 中的 SwiftUI Preview 工作得很好,但是当我扩展 SwiftUI 结构(例如 View)时,该项目将在设备上编译和运行,但 Preview Canvas 崩溃,说明它Failed to build myView.swift。当我点击“诊断”按钮时,它告诉我'View' is only available in iOS 13.0 or newer 和add @available attribute to enclosing extension。但是,有问题的扩展名前面已经有@available(iOS 13.0, *)。例如:
@available(iOS 13.0, *)
extension View {
func myFunc() {
}
}
为了找到这个问题的根源,我注意到如果预览完全为空,它不会崩溃。只有向其中添加函数或静态属性后,画布才会崩溃。我还尝试在扩展中的每个函数之前添加@available 行,重新启动我的计算机,并删除 DerivedData 文件夹,但似乎没有什么不同。
【问题讨论】: