swift - swiftui删除核心数据行
问题描述
我想使用核心数据来存储我的数据。另外,我想在需要时删除数据(行)。我参考了下面的网站。 https://blckbirds.com/post/core-data-and-swiftui/
数据可以很好的添加,但是我想删除数据而不使用List和ForEach{}.onDelete()。
但是,作为我的搜索结果,除了使用 ForEach 的 .onDelete() 之外,我找不到删除一行核心数据的方法。
有没有办法在不使用列表 ForEach onDelete 的情况下删除特定数据(行)?
解决方案
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)")
}
}
推荐阅读
- amazon-web-services - 使用 Lambda 代理集成在来自 API Gateway 的 5XX 响应上添加 CORS 标头
- javascript - 获取 `md-list-item` 的子项列表
- java - 如何使用 freemarker 拆分哈希图的值?
- xamarin.forms - 如何从 xamarin 表单打开应用程序隐私设置
- firefox - 火狐无头自动高度截图
- javascript - 在javascript中解构嵌套对象(反应)
- symfony - 在 postRemove 侦听器中创建的实体未持久化
- vue.js - Vue 监听 deep props 不触发
- payment-gateway - Elavon api:无法输入信用卡号
- winapi - 从什么时候开始 OPENFILENAME.lpstrDefExt 支持超过三个字符的扩展?