Я пытаюсь инициировать данные, поэтому, когда пользователь впервые устанавливает приложение, у него есть некоторые данные. Инициализация не работает, но почему?
Для операций CRUD с базовыми данными я использую файл xcdatamodeld
с сущностью ProgrammingLanguage
, которая имеет два строковых атрибута: «имя» и «создатель» . Вот код:
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@FetchRequest(
entity: ProgrammingLanguage.entity(),
sortDescriptors: [
NSSortDescriptor(keyPath: \ProgrammingLanguage.name, ascending: true),
]
) var languages: FetchedResults<ProgrammingLanguage>
init() {
let language = ProgrammingLanguage(context: self.managedObjectContext)
language.name = "SwiftUI"
language.creator = "Some text"
do {
try self.managedObjectContext.save()
} catch {
}
}
var body: some View {
NavigationView {
List {
ForEach(languages, id: \.self) { language in
Button(action: {
}) {
Text("Creator: \(language.creator ?? "Anonymous")")
}
}
}
}
}
}
Как будто не сохраняет. Что тут происходит? Этот init должен создать данные в базе данных, и я смогу прочитать их в представлении ...