Я пытаюсь быстро создать подкласс NSManagedObject. Я создал две сущности с именами Pages и Book в редакторе моделей и сгенерировал их файлы классов. Вот два класса:
@objc(Pages)
class Pages: NSManagedObject {
@NSManaged var pageNo: NSNumber
}
@objc(Book)
class Book: NSManagedObject {
@NSManaged var pageCount: NSNumber
@NSManaged var title: String
@NSManaged var fetchLastPage: [Pages]
}
В качестве теста для создания экземпляра страниц я написал этот код в ViewDidLoad, который потерпел неудачу, потому что не смог найти объект в модели:
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
var pages = NSEntityDescription.insertNewObjectForEntityForName("StoreTest.Pages", inManagedObjectContext: managedContext)
«StoreTest» — это имя моего приложения, которое также задается в редакторе моделей для двух объектов. Чтобы увидеть, что происходит, я добавил этот код перед созданием экземпляра:
var pagesEntity = NSEntityDescription.entityForName("StoreTest.Pages", inManagedObjectContext: managedContext)
println("pagesEntity = \(pagesEntity)")
var ents = managedContext.persistentStoreCoordinator!.managedObjectModel.entities
println("entities = \(ents)")
Вызов NSEntityDescription.entityForName возвращает nil, но вызов manageObjectModel.entities возвращает две сущности.
Я убедился, что нет проблем с правописанием. Кроме того, управляемый объект не равен нулю. Цель моего файла модели данных правильно настроена на мой модуль приложения.
Я использую xCode 6.4.
Спасибо за вашу помощь!