Я новичок в CoreData, прочитал несколько руководств, но пришел с пустыми руками. Большинство учебных пособий сосредоточились на извлечении из CoreData, чтобы заполнить табличное представление, и это не то, что я делаю в данный момент.Получение последнего элемента из CoreData в Swift
Вот как я устанавливаю данные в CoreData. Все типы Double
за исключением даты, которая является 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)
}
Вот что я пытаюсь сделать, чтобы получить результаты, но я не в состоянии получить доступ к вещам, как .minutes
, .date
и т.д. Я знаю, что я 'm также не получил должным образом последний элемент, я просто пытался сначала распечатать атрибуты объекта.
Я хотел бы помочь, как извлечь только самый последний объект, а также показать, что это атрибуты
Спасибо!
Мартин, это замечательный ответ. Спасибо. Мне не хватало подкласса, который действительно полезен. Одна вещь: я получаю сообщение об ошибке 'managedObjectContext.save (& error)' связанный с указателем ошибки '& error' –
@ZackShapiro: вам понадобится' var error: NSError? ', Как в запросе выборки , Я добавил его в код. –
Спасибо за обновление. После запуска всего этого, я получаю его для печати значений .length и '.date', затем он попадает в точку останова и сообщает мне:« CoreData: warning: Невозможно загрузить класс с именем «Медитация» для объекта «Медитация», , Класс не найден, используя вместо этого по умолчанию NSManagedObject. ' –