Sono nuovo di CoreData, ho letto alcuni tutorial ma sono uscito a mani vuote. La maggior parte dei tutorial sono incentrati sul recupero da CoreData per popolare una vista tabella, che non è quello che sto facendo al momento.Recupero dell'elemento più recente da CoreData in Swift
Ecco come imposto i dati in CoreData. Tutti i tipi sono Double
ad eccezione di data che è un NSDate
let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let managedObjectContext = appDelegate.managedObjectContext
let entityDescription = NSEntityDescription.entityForName("Meditation", inManagedObjectContext: managedObjectContext!)
let meditation = NSManagedObject(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext!)
meditation.setValue(settings.minutes, forKey: "length")
meditation.setValue(settings.warmup, forKey: "warmup")
meditation.setValue(settings.cooldown, forKey: "cooldown")
meditation.setValue(NSDate(), forKey: "date")
// fetch stuff from CoreData
var request = NSFetchRequest(entityName: "Meditation")
var error:NSError? = nil
var results:NSArray = managedObjectContext!.executeFetchRequest(request, error: &error)!
for res in results {
println(res)
}
Ecco quello che sto cercando di fare per ottenere i risultati, ma non sono in grado di accedere le cose come .minutes
, .date
, ecc so anche non sto ottenendo correttamente l'ultimo elemento, stavo solo cercando di stampare prima gli attributi sull'oggetto.
mi piacerebbe aiuto su come recuperare solo l'oggetto più recente come pure mostrare che è la attributi
Grazie!
Martin, questa è una risposta fantastica. Grazie. Mi mancava la sottoclasse che è davvero utile. Una cosa: sto ricevendo un errore sulla riga 'managedObjectContext.save (& error)' relativo al puntatore di errore '& error' –
@ZackShapiro: Avrai bisogno di' var error: NSError? 'Come nella richiesta di recupero , L'ho aggiunto al codice. –
Grazie per l'aggiornamento. Dopo aver eseguito tutto questo, ottengo che stampi i valori '.length' e' .date', poi raggiunge un punto di interruzione e mi dice 'CoreData: warning: Impossibile caricare la classe denominata 'Meditation' per l'entità 'Meditation' . Classe non trovata, utilizzando invece NSManagedObject predefinito. –