Jenis tidak memiliki subskrip anggota, di SwiftUI dengan CoreData [ditutup]
Saya mencoba mencari jawaban untuk pertanyaan ini, tetapi tidak ada jawaban terakhir yang secara spesifik berhubungan dengan data inti.
Saya mencoba membuat fungsi yang menghapus data saya dari scrollview, dari CoreData, onDelete. Ini melemparkan saya kesalahan berikut di sebelah membiarkan delete = SavedPoem [index] ": Ketik" SavedPoem "tidak memiliki anggota" subskrip " .
"SavedPoem" adalah entitas yang disimpan di CoreData, jadi saya tidak yakin bagaimana melakukan rekomendasi yang disarankan dalam pertanyaan sebelumnya.
Kode di sini:
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()
}
}
Struktur CoreData SavedPoem:
Ada ide? Terima kasih sebelumnya.
Jawaban
Asperi
Mungkin Anda bermaksud untuk menggunakan savedpoems
bukanSavedPoem
for index in offsets {
let delete = savedpoems[index]
self.moc.delete(delete)
}
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'