Türde, CoreData [kapalı] ile SwiftUI'de üye alt simgesi yok

Dec 25 2020

Bu soruya bir yanıt aramayı denedim, ancak geçmiş yanıtların hiçbiri özellikle temel verilerle ilgili değil.

Verilerimi bir kaydırma görünümünden, CoreData, onDelete'den kaldıran bir işlev oluşturmaya çalışıyorum. İzin vermek = SavedPoem [index] "seçeneğinin yanında bana şu hatayı atıyor :" SavedPoem "yazın" alt simge "yok .

"SavedPoem", CoreData'da depolanan bir varlıktır, bu nedenle geçmiş sorularda önerilen önerilerin herhangi birini nasıl gerçekleştireceğimden emin değilim.

Burada kodlayın:

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 Yapısı:

Herhangi bir fikir? Şimdiden teşekkürler.

Yanıtlar

Asperi Dec 25 2020 at 12:16

Muhtemelen savedpoemsbunun yerine kullanmak istedinSavedPoem

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