类型在包含CoreData的SwiftUI中没有成员下标
我试图寻找这个问题的答案,但过去的答案都与核心数据无关 我试图创建一个函数,从scrollview、CoreData和onDelete中删除我的数据。它在let delete=SavedPoem[index]”旁边抛出了以下错误:类型“SavedPoem”没有成员“subscript” “SavedPoem”是存储在CoreData中的实体,因此我不确定如何执行过去问题中建议的任何建议 代码如下:类型在包含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 {
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的列表。下一步可能会有所帮助或帮助。