SwiftData 错误此模型实例已被破坏

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

我最近更新到了 Xcode 16 和 iOS 18。 我看到我的应用程序中的小部件停止工作 - 它们是空的。 我尝试启动小部件方案并收到此错误

This model instance was destroyed
与小部件内部使用的 Swiftdata 模型相关

swift swiftdata widgetkit ios18 xcode16
1个回答
0
投票

当实例化模型容器但未使用

.modelContainer(mycontainer)
绑定到视图层次结构时,我在 SwiftUI 预览中看到了此消息。

容器不被拥有,当范围丢失且数据模型被破坏时被释放。

检查您在小部件代码中创建的模型容器的所有权。例如,这可能会体现问题。

@ViewBuilder func thing() -> some View {
   let context = ModelContainer(etc).mainContext
   let thing = MyThingQuery(context)
   Text("Hello from \(thing.foo)")
}

模型容器在退出函数时被丢弃,并且

thing
留下无效的上下文。

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