(Usando swift/Xcode beta 3)colpa Rapporto con i dati di base
Ho due entità nel mio progetto - una controllante che ha una relazione uno-a-molti con i suoi figli. Quando aggiungi nuovi oggetti prima di salvare il contesto, tutto funziona correttamente. Tuttavia, dopo aver riavviato l'app e recuperato di nuovo l'oggetto genitore, ricevo un 'errore di relazione' per tutti i suoi figli. Questo è come mi risparmio mio contesto:
func saveContext() {
var error: NSError? = nil
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context = appDel.managedObjectContext
if context == nil {
return
}
if !context.hasChanges {
return
}
if context.save(&error) {
return
}
println("Error saving context: \(error?.localizedDescription)\n\(error?.userInfo)")
abort()
}
Ho provato a cambiare includesSubentities = vero e setReturnsObjectsAsFaults = falsi ma non sembra aiutare. La maggior parte delle risposte al problema della "relazione difettosa" con Objective-C sembravano utilizzare setRelationshipKeyPathsForPrefetching ma sembra che utilizzarlo con NSFetchRequest in Swift sia impossibile.
C'è qualcosa che mi manca?
L'errore di relazione va bene. In termini di dati fondamentali, l'errore non è l'oggetto reale. Non è stato ancora realizzato, quindi quando si tenta di accedere alle proprietà, esso va e recupera dall'archivio persistente e quindi l'oggetto si accumula. – Sandeep
Ehi, grazie per la risposta. Purtroppo non riesco a recuperare quegli oggetti figlio e semplicemente accedervi non fa il lavoro. –
Si prega di mostrare il codice come si tenta di recuperare il genitore e i suoi oggetti figlio. – zisoft