Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型在包含CoreData的SwiftUI中没有成员下标_Swift_Core Data_Swiftui - Fatal编程技术网

类型在包含CoreData的SwiftUI中没有成员下标

类型在包含CoreData的SwiftUI中没有成员下标,swift,core-data,swiftui,Swift,Core Data,Swiftui,我试图寻找这个问题的答案,但过去的答案都与核心数据无关 我试图创建一个函数,从scrollview、CoreData和onDelete中删除我的数据。它在let delete=SavedPoem[index]”旁边抛出了以下错误:类型“SavedPoem”没有成员“subscript” “SavedPoem”是存储在CoreData中的实体,因此我不确定如何执行过去问题中建议的任何建议 代码如下: import SwiftUI struct SavedPoemList: View {

我试图寻找这个问题的答案,但过去的答案都与核心数据无关

我试图创建一个函数,从scrollview、CoreData和onDelete中删除我的数据。它在let delete=SavedPoem[index]”旁边抛出了以下错误:类型“SavedPoem”没有成员“subscript”

“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()
    }
}
导入快捷界面
结构SavedPoemList:视图{
@环境(\.managedObjectContext)变量moc
@FetchRequest(实体:SavedPoem.entity(),sortDescriptors:[])var savedpoems:FetchedResults
var body:一些观点{
VStack(对齐:。前导,间距:0){
HStack{
文本(“您保存的诗歌”)
.font(.title)
.fontWeight(.黑色)
.foregroundColor(.黑色)
垫片()
}.padding(.bottom)
.padding(.training)
.padding(.leading)
滚动视图{
ForEach(SavedPoem,id:\.title){SavedPoem in
NavigationLink(目标:DetailViewSaved()){
ZStack{
矩形()
.填充(颜色.白色)
.框架(宽度:UIScreen.Screen宽度-40,高度:70)
.转弯半径(5)
.填充([.水平],20)
//.阴影(颜色:灰色,半径:10)
HStack{
VStack(对齐:。前导){
文本(\(SavedPoem.title??))
.font(.headline)
.foregroundColor(.黑色)
.lineLimit(1)
文本(\(SavedPoem.author??))
.font(.subheadline)
.foregroundColor(.secondary)
}
.padding(.卧式)
垫片()
}
.padding()
}.padding(.bottom,10)
}
}.onDelete(执行:删除)
}
.navigationTitle(“我保存的诗歌”)
.navigationBarHidden(真)
.edgesIgnoringSafeArea(.top)
.padding(.bottom,30)
}
.padding(.卧式)
.edgesIgnoringSafeArea(.bottom)
}
func remove(偏移量处:IndexSet){
对于偏移量中的索引{
let delete=SavedPoem[index]
self.moc.delete(删除)
}
试试?self.moc.save()
}
}
结构SavedPoemList\u预览:PreviewProvider{
静态var预览:一些视图{
SavedPoemList()
}
}
CoreData保存的OEM结构:


有什么想法吗?提前谢谢。

你可能是想用
SavedPoem
而不是
SavedPoem

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

这是正确的,谢谢!它会生成,但是.onDelete似乎什么都不做。你知道它在模拟器上是不是不起作用吗?是的.onDelete可以与ScrollView一起工作吗?还是我遗漏了什么?这不在主题范围之内,但是如果你希望的话,ScrollView不会处理类似于onDelete的列表。下一步可能会有所帮助或帮助。