SwiftData/ModelContainer.swift:144: Неустранимая ошибка: не удалось найти активный в данный момент контейнер для StudentIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 SwiftData/ModelContainer.swift:144: Неустранимая ошибка: не удалось найти активный в данный момент контейнер для Student

Сообщение Anonymous »

В настоящее время я следую руководству «Взлом с помощью Swift», чтобы интегрировать SwiftData в проект SwiftUI. Код, созданный на основе руководства, представлен ниже. Однако при запуске приложения возникает ошибка: SwiftData/ModelContainer.swift:144: Неустранимая ошибка: не удалось найти активный в данный момент контейнер для Student.
Мне нужна помощь. в решении этой проблемы.
import SwiftUI
import SwiftData

@Model
class Student {
var id: UUID
var name: String

init(id: UUID, name: String) {
self.id = id
self.name = name
}
}

@main
struct project8App: App {

var body: some Scene {
WindowGroup {
VStack {
ContentView()
}
}
.modelContainer(for: Student.self)
}
}

struct ContentView: View {
@Environment(\.modelContext) var modelContext
@Query var students: [Student]

let allStudents = [
Student(id: UUID(), name: "John"),
Student(id: UUID(), name: "Paul"),
Student(id: UUID(), name: "George"),
Student(id: UUID(), name: "Ringo"),
]

var body: some View {
VStack {
ForEach(students) { student in
Text("\(student.name)")
}
Button(action: {
// random student
let student = allStudents.randomElement()!
modelContext.insert(student)
}) {
Text("Add/Change name")
}
}
}
}


P.S. Похоже, что проблема может быть связана с тем, что контейнер не инициализируется .modelContainer(for: Student.self). Мне удалось устранить ошибку с помощью измененной версии ниже. Однако мне все еще интересны причины неисправности исходной версии и различия между двумя реализациями.
// version 2, which is ok to run

@main
struct project8App: App {
let modelContainer: ModelContainer
init() {
do {
modelContainer = try ModelContainer(for: Student.self)
} catch {
fatalError("Could not initialize ModelContainer")
}
}

var body: some Scene {
WindowGroup {
VStack {
ContentView()
}
}
.modelContainer(modelContainer)
}
}


Подробнее здесь: https://stackoverflow.com/questions/777 ... ently-acti
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»