O tipo não tem subscrito de membro, em SwiftUI com CoreData [fechado]

Dec 25 2020

Tentei procurar uma resposta para esta pergunta, mas nenhuma das respostas anteriores se relaciona especificamente aos dados principais.

Estou tentando criar uma função que remove meus dados de um scrollview, de CoreData, onDelete. Ele está me apresentando o seguinte erro ao lado de let delete = SavedPoem [index] ": O tipo" SavedPoem "não tem nenhum membro" subscrito " .

"SavedPoem" é uma entidade armazenada em CoreData, portanto, não tenho certeza de como executar qualquer uma das recomendações sugeridas em questões anteriores.

Codifique aqui:

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()
    }
}

Estrutura CoreData SavedPoem:

Alguma ideia? Desde já, obrigado.

Respostas

Asperi Dec 25 2020 at 12:16

Provavelmente você pretendia usar em savedpoemsvez deSavedPoem

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