Xcode swift ui 错误 'KeyPathComparator' 仅适用于 macOS 12.0 或更新版本
Xcode swift ui error 'KeyPathComparator' is only available in macOS 12.0 or newer
我收到了这个错误,正如您从图片中看到的那样,我已经按照它告诉我如何更正错误进行了操作。
我做错了什么?
很遗憾,您想要做的事情是不可能的。
生成编译器错误是因为编译器无法将 @available
属性应用到应用了 属性 包装器的属性。但是,即使您删除了 @State
属性 包装器,而是手动将 属性 包装在 State
中,就像这样
@available(macOS 12, *) private var sortOrder = State(wrappedValue: [KeyPathComparator(\Repository.name)])
你得到一个不同的编译器错误:
Stored properties cannot be marked potentially unavailable with '@available'
因此,正如新的编译器错误告诉您的那样,您不能在不标记封闭类型 @available
.
的情况下将存储的属性标记为 @available
要解决此问题,您需要为 View
创建 2 个版本,其中一个标记为 @available(macOS 12, *)
并包含 KeyPathComparator
,另一个没有 @available
不包含 KeyPathComparator
属性.
我收到了这个错误,正如您从图片中看到的那样,我已经按照它告诉我如何更正错误进行了操作。
我做错了什么?
很遗憾,您想要做的事情是不可能的。
生成编译器错误是因为编译器无法将 @available
属性应用到应用了 属性 包装器的属性。但是,即使您删除了 @State
属性 包装器,而是手动将 属性 包装在 State
中,就像这样
@available(macOS 12, *) private var sortOrder = State(wrappedValue: [KeyPathComparator(\Repository.name)])
你得到一个不同的编译器错误:
Stored properties cannot be marked potentially unavailable with '@available'
因此,正如新的编译器错误告诉您的那样,您不能在不标记封闭类型 @available
.
@available
要解决此问题,您需要为 View
创建 2 个版本,其中一个标记为 @available(macOS 12, *)
并包含 KeyPathComparator
,另一个没有 @available
不包含 KeyPathComparator
属性.