Swift - 更新现有核心数据实体的最佳实践

时间:2020-12-18 21:46:29

标签: swift database offline

我有一个应用程序,需要将产品列表存储到核心数据中。我调用以下方法:

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 并找到匹配项。位这个工具需要大量的时间来使用。我想做的是完全删除这些条目的整个数据库。然后我可以将机场重新保存到空白数据库中。但是,我不确定如何删除特定属性的所有实例...

0 个答案:

没有答案