enter image description here

我得到了这个错误,你可以从图片中看到,我已经做了它告诉我如何纠正错误的事情.

我做错了什么?

推荐答案

不幸的是,你想要做的是不可能的.

生成编译器错误是因为编译器无法将@available个属性应用于应用了属性包装的属性.然而,即使移除@State属性包装器,而是手动将属性包装到State中,如下所示

@available(macOS 12, *) private var sortOrder = State(wrappedValue: [KeyPathComparator(\Repository.name)])

您会遇到另一个编译器错误:

存储的属性不能用"@available"标记为潜在不可用

因此,正如新的编译器错误告诉您的,如果不将封闭类型标记为@available,就不能将存储的属性标记为@available.

要解决这个问题,您需要创建两个版本的View,一个标记为@available(macOS 12, *)并包含KeyPathComparator,另一个不包含@available且不包含KeyPathComparator属性的版本.

Swift相关问答推荐

为什么Swift在某些链调用中不能对不可变值使用变异成员,而在其他链调用中则不能使用变异成员?

计算Vision OS相机与Vision OS中3D模型之间的距离

SwiftData查询按日期排序的项的属性数组

map 视图上的SwiftUI渐变折线

如何在向照片添加文本时定义文本对齐、文本背景的Alpha和在文本之前添加图像

阻塞(受CPU限制的)任务的异步功能?

无论玩家移动到视图内的哪个位置,如何使用 SpriteKit 让敌人向玩家emits 子弹?

在 Swift 中将异步任务包装到 DispatchWorkItem 中以使其可取消?

RealityKit - 从中心zoom 模型

可以使 Swift init 仅可用于 Objective C 吗?

SwiftUI 无法在实时活动中显示 SpriteView

如何将视图添加到多行文本视图的末尾?

签署GoogleSignIn-GoogleSignIn需要开发团队

如何为 Swift UI 视图定义 struct ?

与 SwiftUI 中的 onChange 修饰符相比,objectWillChangeSequence 的目的是什么?

在 Swift 5.5 中编写同步和异步函数

无法使用锚激活约束

Swift:如何从函数返回类类型

在 Swift 中,你可以用另一个字符串分割一个字符串,而不仅仅是一个字符吗?

Swift - 要求实现协议的类是某个类的子类