swift 使用@Observable和@Enviorment宏作为Apple SwifftUI插件的一部分的解决方法是什么?

bxgwgixi  于 12个月前  发布在  Swift
关注(0)|答案(1)|浏览(143)

使用这些宏时,我收到以下错误:
@Observable问题:未知属性“ObservableObject”
@环境问题:无法将类型“ModelData.Type”的值转换为预期的参数类型“KeyPath<EnvironmentValues,Value”,无法推断泛型参数“Value”
在第4节第2步的下一页link-to-page上,我被告知执行以下操作:
Step 2: Declare a new model type using the Observable() macro.
然后在步骤3中告诉我以下内容:In LandmarkList, add an @Environment property wrapper to the view, and an environment(_:) modifier to the preview.
我试着把我的类设置为遵守ObservableProtocol,并把我的var landmarks设置为@Published,但我不知道我在做什么,也不知道这意味着什么。它似乎删除了@Observable问题的错误消息。

7gcisfzg

7gcisfzg1#

@Published不支持@Observable
Observable取代ObservableObject
在iOS 17+中,如果您出于其他原因需要Combine,则应仅使用ObservableObject/Published
https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro
该教程是为iOS 17+量身定制的,所以如果你支持的是任何低于Observable的东西,那么Observable就不起作用了。这可能是你的问题。

相关问题