Swift CoreData:错误:无法调用NSManagedObject类NSManagedObject上的指定初始值设定项

我正在使用核心数据在vc1中保存类别,并希望将列表属性添加到vc2中的列表中。 我的数据模型是许多列表属性的一个类别。

我在vc1中添加这样的类别:

func createNewCategory() { var category: NSManagedObject! = NSEntityDescription.insertNewObjectForEntityForName("Category", inManagedObjectContext: self.context) as NSManagedObject category.setValue(self.categoryTextField.text, forKey: "name") var error: NSError? = nil self.context.save(&error) } 

在vc2中设置数据:

 func setupCoreData() { var appDelegate: AppDelegate = (UIApplication.sharedApplication()).delegate as AppDelegate self.context = appDelegate.managedObjectContext! var request: NSFetchRequest = NSFetchRequest(entityName: "Category") if (self.context.executeFetchRequest(request, error: nil)) { var error: NSError? = nil self.listData = self.context.executeFetchRequest(request, error: &error) self.managedObject = self.listData.objectAtIndex(0) as NSManagedObject } } 

它在最后一行崩溃: self.managedObject = ...说:

 CoreData: error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject' 

被pipe理的对象在数组中,如果我把一个断点和打印数组。 怎么了?

专用的初始化器是

 class func insertNewObjectForEntityForName(_ entityName: String!, inManagedObjectContext context: NSManagedObjectContext!) -> AnyObject! 

显然,你并没有插入一个新的对象,所以你真的想要一个可选的值。 也许你宣布你的类variablesmanagedObject NSManagedObject! ? 尝试将其设置为NSManagedObject? 也改变了运营商as?

CoreData中的一个实体相当于一个类。 您是否将实体添加到托pipe对象模型中,并将实体的子类? (查看编程指南获取更完整的背景。)