Je duplique une application Objective-C TV Show existante vers une nouvelle version Swift à l'aide de Xcode 6.1 et j'ai des problèmes avec CoreData.
J'ai créé un modèle de 4 entités, créé leur sous-classe NSManagedObject (dans Swift) et tous les fichiers ont les cibles d'application appropriées définies (pour 'Compile Sources').
J'obtiens toujours cette erreur chaque fois que j'essaye d'insérer une nouvelle entité:
CoreData: avertissement: impossible de charger la classe nommée «Shows» pour l'entité «Shows». Classe introuvable, utilisant à la place NSManagedObject par défaut.
Quelques remarques:
Lors de l'enregistrement dans Core Data, j'utilise la méthode de contexte parent-enfant pour autoriser le thread en arrière-plan. Je fais cela en configurant le ManagedObjectContext en utilisant:
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
}()
et en sauvegardant les données en utilisant:
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...
})