Estoy duplicando una aplicación de programa de televisión Objective-C existente en una nueva versión de Swift usando Xcode 6.1 y tengo algunos problemas con CoreData.
Creé un modelo de 4 entidades, creé su subclase NSManagedObject (en Swift), y todos los archivos tienen los objetivos de aplicación adecuados establecidos (para 'Compilar fuentes').
Sigo recibiendo este error cada vez que intento insertar una nueva entidad:
CoreData: advertencia: no se puede cargar la clase denominada 'Shows' para la entidad 'Shows'. Clase no encontrada, usando NSManagedObject predeterminado en su lugar.
Algunos comentarios:
Al guardar en Core Data, utilizo la forma de contexto padre-hijo para permitir subprocesos en segundo plano. Hago esto configurando ManagedObjectContext usando:
lazy var managedObjectContext: NSManagedObjectContext? = {
// Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
let coordinator = self.persistentStoreCoordinator
if coordinator == nil {
return nil
}
var managedObjectContext = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = coordinator
return managedObjectContext
}()
y guardando datos usando:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
var context = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.PrivateQueueConcurrencyType)
context.parentContext = self.managedObjectContext!
...rest of core data saving code here...
})