核心数据实体的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) }
现在它工作。