我有一个应用程序,需要将产品列表存储到核心数据中。我调用以下方法:
var productsList: [ProducttCD] = [] // ProductCd is the codable class used to decode products
private func getSavedProducts() {
let context = appDelegate.persistentContainer.viewContext
let request: NSFetchRequest<ProductCD> = ProductCD.fetchRequest()
do {
productsList = try context.fetch(request)
} catch {
print("Error fetching data from context \(error)")
}
if produtsList.count == 0 {
self.saveProductsToCD(taskType: .saveAll)
} else if let lastSaved = productsLastSaved, lastSaved < (Date().timeIntervalSince1970 - 86400) {
self.saveProductsToCD(taskType: .update)
}
}
现在,我想要做的是基本上更新这个数据库,如果它超过 24 小时。这意味着如果特定实体的一个属性发生了变化,例如,它应该更新核心数据数据库。
我原本打算做的是删除整个数据库,这看起来很极端。
我确实尝试遍历链接到对象的 ID,过滤那些与核心数据条目匹配的 ID 并找到匹配项。位这个工具需要大量的时间来使用。我想做的是完全删除这些条目的整个数据库。然后我可以将机场重新保存到空白数据库中。但是,我不确定如何删除特定属性的所有实例...