我正在使用xcode 6.1并开发iOS 8.1。我有一个名为 CoreDataTest 的简单项目,我在那里玩核心数据。
型号:
import CoreData
class Licence: NSManagedObject {
@NSManaged var name: String
}
和
现在我想创建一个许可证对象。这是我在创建对象之前需要的:
let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context:NSManagedObjectContext = appDel.managedObjectContext!
let ent = NSEntityDescription.entityForName("Licence", inManagedObjectContext: context)
问题是xcode没有为实体提供正确的构造函数。当我开始输入时:
var newLicence = Licence(..
我没有像这个例子那样自动完成:
我只是将NSManagedObject()作为自动完成。任何想法都错了吗?
答案 0 :(得分:5)
通过阅读NSManagedObject的文档来解决它:)
正确配置托管对象以供使用非常重要 核心数据。如果直接实例化托管对象,则必须 调用指定的初始化程序 (initWithEntity:insertIntoManagedObjectContext:)
所以在我的班上我实施了:
override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
}
现在可行。