SwiftData/ModelContainer.Swift: 144: Фактальная ошибка: не удалось найти активной контейнер для студентаIOS

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

Сообщение Anonymous »

В настоящее время я следую учебному пособию от Hacking с Swift, чтобы интегрировать SwiftData в проект Swiftui. Код, сгенерированный на основе учебника, представлен ниже. Однако при запуске приложения возникает ошибка: SwiftData/ModelContainer.Swift: 144: Фатальная ошибка: не удалось найти активной контейнер для студента .
Я ищу помощь в решении этой проблемы.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")
}
}
}
}

< /code>
p.s. Похоже, что проблема может быть связана с тем, что контейнер не инициализирован. ModelContainer (для: Student.elf) . Мне удалось разрешить ошибку с измененной версией ниже. Тем не менее, мне все еще интересно по поводу причин неисправности оригинальной версии и различий между двумя реализациями.// 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»