首页 > 解决方案 > swiftui删除核心数据行

问题描述

我想使用核心数据来存储我的数据。另外,我想在需要时删除数据(行)。我参考了下面的网站。 https://blckbirds.com/post/core-data-and-swiftui/

数据可以很好的添加,但是我想删除数据而不使用List和ForEach{}.onDelete()。

但是,作为我的搜索结果,除了使用 ForEach 的 .onDelete() 之外,我找不到删除一行核心数据的方法。

有没有办法在不使用列表 ForEach onDelete 的情况下删除特定数据(行)?

标签: swiftcore-dataswiftui

解决方案


import SwiftUI
import CoreData

struct ContentView: View {
    @Environment(\.managedObjectContext) private var context
    @FetchRequest(
        sortDescriptors: [NSSortDescriptor(keyPath: \Order.timestamp, ascending: true)],
        animation: .default)
    private var orders: FetchedResults<Order>

//.....your code....

for order in orders {
  if order.name == «KuKu” {//here is your condition 
  self.deleteSelectedOrder(selectedOrder: order)
  }
}
func deleteSelectedOrder(selectedOrder: Order){
  context.delete(selectedOrder as! NSManagedObject)
            do {
                try context.save()
            } catch {
               
                let nsError = error as NSError
                fatalError("Unresolved error \(nsError), \(nsError.userInfo)")
            }
}

推荐阅读