Swift+Xcode 6 beta 3+核心数据=awakeFromInsert未调用?
我需要帮助 我正在创建新的基于文档的核心数据Cocoa项目。 将名为“实体”的实体添加到核心数据模型中。将“creationDate”属性添加到其中,并将其类型设置为Date。并从“编辑器”菜单创建NSManagedObject子类 现在,我将以下代码添加到“Entity.swift”文件中:Swift+Xcode 6 beta 3+核心数据=awakeFromInsert未调用?,xcode,core-data,swift,Xcode,Core Data,Swift,我需要帮助 我正在创建新的基于文档的核心数据Cocoa项目。 将名为“实体”的实体添加到核心数据模型中。将“creationDate”属性添加到其中,并将其类型设置为Date。并从“编辑器”菜单创建NSManagedObject子类 现在,我将以下代码添加到“Entity.swift”文件中: override func awakeFromInsert() { super.awakeFromInsert() self.creationDate = NSDate() pr
override func awakeFromInsert() {
super.awakeFromInsert()
self.creationDate = NSDate()
println("awakeFromInsert called")
}
现在,在我的NSPersistentDocument子类中,我编写了这样一个init方法:
init() {
super.init()
var context = self.managedObjectContext
context.undoManager.disableUndoRegistration()
var entity = NSEntityDescription.insertNewObjectForEntityForName("Entity", inManagedObjectContext: context)
context.processPendingChanges()
context.undoManager.enableUndoRegistration()
println("\(entity)")
}
一切都在汇编。。。但从未调用awakeFromInsert!有趣的是,‘实体’对象不是零!它已创建,但尚未初始化。如果我用init方法写这行
entity.creationDate = NSDate()
然后creationDate属性将按预期设置为当前日期
但这还不是全部。如果我一步一步地调试执行,我可以看到执行进入“Entity.swift”文件,但从文件的顶部开始,然后立即删除并返回NSPersistentDocument子类文件
告诉我,是虫子吗?因为我厌倦了和这些废话作斗争。谢谢。我不小心让它工作了:您必须在子类声明之前添加@objcYourSubclass。我通常都是用@objc class MySubclass,结果发现它不起作用,我不知道为什么 工作:
@objc(YourSubclass)
class YourSubclass : NSManagedObject {
...
不工作:
@objc class YourSubclass : NSManagedObject {
...
您是否也在核心数据模型文件中修饰类的名称?不确定,我明白了。两个名字都一样