gpt4 book ai didi

Swift - 核心数据。枚举时集合发生变异

转载 作者:行者123 更新时间:2023-11-30 12:41:45 26 4
gpt4 key购买 nike

我确实看过有关标题的所有答案,但它们都是用 Objetive-C 编写的,知道用 Swift 编写吗?

这是我的代码:

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let respuesta = self.funcCoreData.obtenerResultados(entidad: "Clientes", orden: "nombre_comercial", ascendente: true)
self.objeto = respuesta[0] as! NSFetchRequest<NSManagedObject>
self.resultados = respuesta[1] as! NSFetchedResultsController<NSManagedObject>
do {
try self.resultados.performFetch()
if self.funcCoreData.objetoLleno(objeto: self.objeto) {
self.pintarSecciones()
}
} catch {
print("👋👋👋👋 \(error)")
}
}

文件 funcCoreData.swift

func obtenerResultados(entidad: String, orden: String, ascendente: Bool) -> [AnyObject] {
let appDelegate = UIApplication.shared.delegate as? AppDelegate
let context = appDelegate?.persistentContainer.viewContext
let objeto = recorrerObjeto(entidad: entidad, orden: orden, ascendente: ascendente)
let recorrerResultados = NSFetchedResultsController<NSManagedObject>(fetchRequest: objeto, managedObjectContext: context!, sectionNameKeyPath: "seccionLetra", cacheName: nil)

var array = [AnyObject]()
array.append(objeto)
array.append(recorrerResultados)

return array
}

func recorrerObjeto(entidad: String, orden: String, ascendente: Bool) -> NSFetchRequest<NSManagedObject> {
let objeto = NSFetchRequest<NSManagedObject>(entityName: entidad)
let ordenacion = NSSortDescriptor(key: orden, ascending: ascendente, selector: #selector(NSString.caseInsensitiveCompare))
objeto.sortDescriptors = [ordenacion]
return objeto
}

我必须放置一个线程,例如 DispatchQueue.global(qos: .background).async 但是,我不知道在哪里!

最佳答案

您不需要包含 fetchRequest 和 fetchedResultsController 的数组。这使得代码变得不必要的复杂。您可以获取从 fetchedResultsController fetchedObjects 属性中获取的对象,如果您需要 fetchRequest,则可以从 fetchedResultsController.fetchRequest 获取它。

我不知道 self.funcCoreData.objetoLleno 或 self.pintarSecciones 正在做什么,但我怀疑这是不必要的并导致崩溃。如果您有通过 fetchedResultsController.fetchedObjects 进行枚举的代码,那么您必须在执行此操作之前复制对象。当您循环访问 fetchedObjects 时,它可能会发生变化并导致崩溃。

关于Swift - 核心数据。枚举时集合发生变异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42157672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com