Typ hat keinen Mitgliedsindex, in SwiftUI mit CoreData [geschlossen]
Dec 25 2020
Ich habe versucht, nach einer Antwort auf diese Frage zu suchen, aber keine der früheren Antworten bezieht sich speziell auf Kerndaten.
Ich versuche, eine Funktion zu erstellen, mit der meine Daten aus einer Bildlaufansicht aus CoreData onDelete entfernt werden. Es wirft mir den folgenden Fehler neben delete = SavedPoem [index] ": Typ" SavedPoem "hat kein Mitglied" tiefgestellt " .
"SavedPoem" ist eine in CoreData gespeicherte Entität, daher bin ich mir nicht sicher, wie ich die in früheren Fragen vorgeschlagenen Empfehlungen ausführen soll.
Code hier:
import SwiftUI
struct SavedPoemList: View {
@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: SavedPoem.entity(), sortDescriptors: []) var savedpoems : FetchedResults<SavedPoem>
var body: some View {
VStack (alignment: .leading, spacing: 0) {
HStack{
Text("Your Saved Poems")
.font(.title)
.fontWeight(.black)
.foregroundColor(.black)
Spacer()
}.padding(.bottom)
.padding(.trailing)
.padding(.leading)
ScrollView {
ForEach(savedpoems, id:\.title) {SavedPoem in
NavigationLink (destination: DetailViewSaved()){
ZStack {
Rectangle()
.fill(Color.white)
.frame(width: UIScreen.screenWidth - 40, height: 70)
.cornerRadius(5)
.padding([.horizontal], 20)
// .shadow(color: .gray, radius: 10)
HStack {
VStack (alignment: .leading){
Text("\(SavedPoem.title ?? "")")
.font(.headline)
.foregroundColor(.black)
.lineLimit(1)
Text("\(SavedPoem.author ?? "")")
.font(.subheadline)
.foregroundColor(.secondary)
}
.padding(.horizontal)
Spacer()
}
.padding()
}.padding(.bottom,10)
}
}.onDelete(perform: remove)
}
.navigationTitle("My Saved Poems")
.navigationBarHidden(true)
.edgesIgnoringSafeArea(.top)
.padding(.bottom, 30)
}
.padding(.horizontal)
.edgesIgnoringSafeArea(.bottom)
}
func remove(at offsets : IndexSet) {
for index in offsets {
let delete = SavedPoem[index]
self.moc.delete(delete)
}
try? self.moc.save()
}
}
struct SavedPoemList_Previews: PreviewProvider {
static var previews: some View {
SavedPoemList()
}
}
CoreData SavedPoem-Struktur:

Irgendwelche Ideen? Danke im Voraus.
Antworten
Asperi Dec 25 2020 at 12:16
Wahrscheinlich wollten Sie savedpoems
stattdessen verwendenSavedPoem
for index in offsets {
let delete = savedpoems[index]
self.moc.delete(delete)
}