【问题标题】:swiftui delete core data rowswiftui删除核心数据行
【发布时间】:2021-01-23 15:21:26
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这是否回答了您的问题stackoverflow.com/a/62154314/12299030
  • 你可以有一个按钮,然后运行代码:moc.delete(LIST_ITEM) 然后try? moc.save(),其中moc 定义为@Environment(\.managedObjectContext) private var moc。 (该教程使用变量名viewContext 而不是moc)。 This 也可能有用。他们使用onDelete,但你不需要使用它。
  • 这能回答你的问题吗? Delete data from CoreData

标签: swift core-data swiftui


【解决方案1】:
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)")
            }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多