核心数据实体的Init方法不可用

我在Xcode 6.1和iOS 8.1开发。 我有一个名为CoreDataTest的简单项目,在这里我使用核心数据。

模型:

import CoreData class Licence: NSManagedObject { @NSManaged var name: String } 

在这里输入图像说明

现在我想创build一个许可证对象。 这是我创build对象之前所需要的:

 let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate let context:NSManagedObjectContext = appDel.managedObjectContext! let ent = NSEntityDescription.entityForName("Licence", inManagedObjectContext: context) 

问题是xcode没有为实体提供正确的构造函数。 当我开始input时:

 var newLicence = Licence(.. 

我在这个例子中没有自动完成:

在这里输入图像说明

我只是得到NSManagedObject()作为自动完成。 任何想法什么是错的?

通过阅读NSManagedObject的文档解决了它:)

pipe理对象正确configuration以便与Core Data一起使用非常重要。 如果直接实例化一个托pipe对象,则必须调用指定的初始化程序(initWithEntity:insertIntoManagedObjectContext 🙂

所以在我的课堂上,我实现了:

 override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) { super.init(entity: entity, insertIntoManagedObjectContext: context) } 

现在它工作。