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 savedpoems
bunun yerine kullanmak istedinSavedPoem
for index in offsets {
let delete = savedpoems[index]
self.moc.delete(delete)
}
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'