swiftui删除核心数据行
Posted
技术标签:
【中文标题】swiftui删除核心数据行【英文标题】:swiftui delete core data row 【发布时间】:2021-01-23 15:21:26 【问题描述】:我想使用核心数据来存储我的数据。 另外,我想在需要时删除数据(行)。 我参考了下面的网站。 https://blckbirds.com/post/core-data-and-swiftui/
可以很好的添加数据,但是我想删除数据而不使用List和ForEach.onDelete()。
但是,作为我的搜索结果,除了使用 ForEach 的 .onDelete() 之外,我找不到删除一行核心数据的方法。
有没有办法在不使用列表、ForEach onDelete 的情况下删除特定数据(Row)??
【问题讨论】:
这是否回答了您的问题***.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
【参考方案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)")
【讨论】:
以上是关于swiftui删除核心数据行的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SwiftUI 的详细信息视图(编辑项目视图)中删除核心数据条目?
在 macOS 上的 SwiftUI 列表视图中选择和删除核心数据实体
Index Beyond Bounds / EXC_BAD_ACCESS 核心数据删除 SwiftUI