У меня возникла проблема с извлечением данных с использованием объекта Core Data.Swift CoreData: Не удалось вызвать назначенный инициализатор на NSManagedObject
Это код, используемый для извлечения данных
let fetchRequest = NSFetchRequest(entityName: "Country")
var countries = [Country!]()
do {
countries = try self.managedObjectContext!.executeFetchRequest(fetchRequest) as! [Country!]
} catch {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
let nserror = error as NSError
NSLog("Unresolved error \(nserror), \(nserror.userInfo)")
abort()
}
Это определение модельной
import Foundation
import CoreData
@objc(Country)
class Country: NSManagedObject
{
.....
}
Это расширение модели
import Foundation
import CoreData
extension Country {
@NSManaged var countryCode: String?
@NSManaged var dialCode: String?
@NSManaged var name: String?
}
Я получаю следующее сообщение об ошибке :
CoreData: error: Failed to call designated initializer on NSManagedObject class 'Country'
fatal error: unexpectedly found nil while unwrapping an Optional value
Это нарушение на этой линии:
countries = try self.managedObjectContext!.executeFetchRequest(fetchRequest) as! [Country!]
Я не уверен, что я понимаю, что проблема здесь. Может кто-нибудь советовать?
Спасибо!
Это, вероятно, потому, что где-то есть объявление переменного вдоль линий 'вара MyObject = Страна() '. Это не просто объявляет переменную, но также создает экземпляр с использованием инициализатора по умолчанию ('init'), тогда как NSManagedObjects (и подклассы) ДОЛЖНЫ быть инициализированы с использованием назначенного инициализатора:' initWithEntity: insertIntoManagedObjectContext: '. Объявите его вместо этого как «var myObject: Country» – pbasdf