我的应用程序及其小部件之间共享一个应用程序组。
我有 SwiftData 的 @Model,从小部件意图的
perform()
方法更新并显示在应用程序和小部件上。
@MainActor
func perform() async throws -> some IntentResult {
let context = try ModelContainer(for: MyModel.self).mainContext
let myModel = try ModelContainer(for: MyModel.self).mainContext.fetch(
FetchDescriptor<MyModel>(predicate: #Predicate {
// The predicate is not the problem.
})
).first
myModel?.functionThatModifiesMyModel()
return .result()
}
应用程序和小部件 SwiftUI 都可以使用宏查看对模型的访问。
@Environment(\.modelContext) var context
@Query(sort: \.whatever) var myModel: [MyModel]
但是应用程序代码中的数据永远不正确(使用意图正确更新小部件的数据)。
为什么模型没有出现在应用程序中?
不幸的是,还没有解决方案,但只是想让你知道我也遇到了同样的问题。