Проблема
Я пытаюсь просто сохранить запись, а затем получить ее, но мне кажется, что я делаю здесь что-то не так, поскольку моя запись не сохраняется. В окне вывода отображается пустой массив.
Я использую стандартный стек AppDelegate CoreData в Xcode 7 beta 5. [См. Суть здесь]
Пытаться
Сущность
Модель
import Foundation
import CoreData
// @func(Person) edit: removed
class Person: NSManagedObject {
@NSManaged var firstName: String?
@NSManaged var lastName: String?
}
Контроллер просмотра
import UIKit
import CoreData
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
seedPerson()
fetch()
}
func seedPerson() {
let managedContext = AppDelegate().managedObjectContext
let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext: managedContext)
let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
// add our data
person.setValue("Dan", forKey: "firstName")
person.setValue("Beaulieu", forKey: "lastName")
// save it
do {
try AppDelegate().managedObjectContext.save()
} catch {
fatalError("Failure to save context: \(error)")
}
}
func fetch() {
let moc = AppDelegate().managedObjectContext
let personFetch = NSFetchRequest(entityName: "Person")
do {
let fetchedPerson = try moc.executeFetchRequest(personFetch) as! [Person]
print(fetchedPerson.first!.firstName)
} catch {
fatalError("Failed to fetch person: \(error)")
}
}
}
Желаемое поведение
Я пытаюсь вернуть свое имя из хранилища данных, однако я не думаю, что моя запись когда-либо была сохранена, поэтому я получаю пустой массив.
Итак, у меня конкретный вопрос: как мне сэкономить, используя стандартный стек основных данных?