【发布时间】:2021-01-20 07:12:04
【问题描述】:
我使用“核心数据”保存应用程序数据并使用“ForEach”将其显示在列表中,我提供“实体”“索引”属性,以便我可以按顺序对数据进行排序,我可以使用删除数据“.onDelete(perform: deleteList)”如下面的代码所示,但我不知道如何实现“.onMove”,任何人都可以帮助或给我一个示例代码或任何东西。
struct ListsView: View {
@FetchRequest(entity: ListOfTasks.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \ListOfTasks.index, ascending: true)]) private var lists: FetchedResults<ListOfTasks>
@Environment(\.managedObjectContext) private var viewContext
var body: some View {
Section {
ForEach(self.lists, id: \.self) { list in
Text("\(list.wrappedTitle)")
}
.onDelete(perform: deleteList)
}
}
func deleteList(at offsets: IndexSet) {
for offset in offsets {
let list = lists[offset]
self.viewContext.delete(list)
}
try? viewContext.save()
}
}
【问题讨论】:
-
我认为 onMove 在这种情况下没有意义 - 你已经对列表进行了排序。
-
这能回答你的问题吗? SwiftUI reorder CoreData Objects in List
-
我已经尝试过了,但它不起作用,谢谢。
标签: swift core-data swiftui swiftui-list