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 savedpoemsstattdessen verwendenSavedPoem

for index in offsets {
    let delete = savedpoems[index]
    self.moc.delete(delete)
}