कोरडाटा के साथ स्विफ्टयूआई में टाइप का कोई सदस्य नहीं है

Dec 25 2020

मैंने इस प्रश्न का उत्तर खोजने की कोशिश की, लेकिन अतीत के उत्तरों में से कोई भी विशेष रूप से कोर डेटा से संबंधित नहीं है।

मैं एक ऐसा फंक्शन बनाने की कोशिश कर रहा हूं, जो मेरे डेटा को एक स्क्रॉलव्यू से हटाता है, कोरडैटा, ऑनडेइट से। यह मुझे डिलीट करने के बाद निम्न त्रुटि दे रहा है = SavedPoem [index] ":" SavedPoem "का कोई सदस्य" सबस्क्रिप्ट "नहीं है

"SavedPoem" CoreData में संग्रहीत इकाई है, इस प्रकार मैं अनिश्चित हूं कि पिछले प्रश्नों में सुझाई गई किसी भी सिफारिश को कैसे किया जाए।

यहाँ कोड:

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 संरचना:

कोई विचार? अग्रिम में धन्यवाद।

जवाब

Asperi Dec 25 2020 at 12:16

संभवतः आप savedpoemsइसके बजाय उपयोग करना चाहते थेSavedPoem

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