我的应用程序在试图插入ModelContext时崩溃了。有什么明显的原因吗?
@Model
class MyDataClass {
var number : String
var pageNumberInDocument : Int
init(number: String, pageNumberInDocument: Int) {
self.number = number
self.pageNumberInDocument = pageNumberInDocument
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}.modelContainer(for:[MyDataClass.self])
}
}
struct SaveMyData {
@Environment(\.modelContext) var context
func saveData(number: String, pageNumberInDocument : Int) {
let dataToSave = MyDataClass(number: number, pageNumberInDocument: Int(pageNumberInDocument)!)
context.insert(dataToSave)
}
}
字符串
对我来说一切都很基本和正确。我的崩溃....
- 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法在此托管对象上下文中插入”MyDataClass“,因为在关联的托管对象模型中找不到它。”
我在苹果开发者论坛上看到了同样的问题,但没有对该帖子的重要回复。因此,我的帖子。真的很感谢任何人能够甚至只是向我陈述显而易见的事情。谢谢
1条答案
按热度按时间yqlxgs2m1#
你不能在View之外使用
@Environment
,所以你需要注入模型上下文。字符串
由于该函数没有以任何方式访问
self
,因此如果需要,可以将其设置为静态。