Estou duplicando um aplicativo Objective-C TV Show existente para uma nova versão do Swift usando o Xcode 6.1 e estou tendo alguns problemas com CoreData.
Eu criei um modelo de 4 entidades, criei sua subclasse NSManagedObject (em Swift) e todos os arquivos têm os destinos de aplicativo adequados definidos (para 'Compile Sources').
Ainda recebo este erro sempre que tento inserir uma nova entidade:
CoreData: aviso: Incapaz de carregar a classe chamada 'Shows' para a entidade 'Shows'. Classe não encontrada, usando o NSManagedObject padrão.
Alguns comentários:
Ao salvar no Core Data, eu uso a forma de contexto pai-filho para permitir threading em segundo plano. Eu faço isso configurando o 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
}()
e salvando dados 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...
})