如何解决批量更新 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)
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。