批量更新 CoreData 没有性能问题

我有一个用单元格填充的 tableView。数据从私有 api 中作为 json 获取并存储为 CoreData。当单元格被重用时,我通过委托方法(来自 web URL)获取了它们的 imageView。当我尝试将该图像数据保存到该托管对象时会出现问题。所以当获取图像数据时,我获取managedObject,添加图像数据并重新保存它。然而,这对 tableview 性能(滞后 tableview 滚动)有巨大影响。我尝试在后台获取和保存(privateQueueConcurrencyType)但没有任何变化。非常感谢任何建议。

func updateCoreDataImage(image:Data,for Url:String) {
    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context = appDelegate.persistentContainer.viewContext

    let priMOC = NSmanagedobjectcontext(concurrencyType: .privateQueueConcurrencyType)
    priMOC.parent = context

    priMOC.perform {
        do{
            let request = NSFetchRequest<NSFetchRequestResult>(entityName: "DB")
            request.predicate = NSPredicate(format: "url = %@",Url)
            request.includesSubentities = false
            request.returnsObjectsAsFaults = false

            let result = try? context.fetch(request)

            let object = result![0] as! NSManagedObject

            object.setvalue(image,forKey: "image")

            try priMOC.save()
            print("save")
        } catch {
            print(error.localizedDescription)
        }
    }
}
axstarmiao 回答:批量更新 CoreData 没有性能问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1093481.html

大家都在问