Sto duplicando un'app Objective-C TV Show esistente su una nuova versione di Swift utilizzando Xcode 6.1 e sto riscontrando alcuni problemi con CoreData.
Ho creato un modello di 4 entità, creato la loro sottoclasse NSManagedObject (in Swift) e tutti i file hanno gli obiettivi di app corretti impostati (per "Compile Sources").
Continuo a ricevere questo errore ogni volta che provo a inserire una nuova entità:
CoreData: avviso: impossibile caricare la classe denominata "Spettacoli" per l'entità "Spettacoli". Classe non trovata, utilizzando invece NSManagedObject predefinito.
Alcuni commenti:
Durante il salvataggio in Core Data, utilizzo il modo del contesto padre-figlio per consentire il threading in background. Lo faccio impostando 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 i dati utilizzando:
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...
})