如何在小部件和应用程序之间共享 SwiftData @Model?

问题描述 投票:0回答:1

我的应用程序及其小部件之间共享一个应用程序组。

我有 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]

但是应用程序代码中的数据永远不正确(使用意图正确更新小部件的数据)。

为什么模型没有出现在应用程序中?

ios swift core-data widgetkit swift-data
1个回答
-1
投票

不幸的是,还没有解决方案,但只是想让你知道我也遇到了同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.