Ios CoreData:错误:调用NSManagedObject类上的指定初始值设定项失败创建失败
我研究了其他问题并尝试了它们的解决方案,但错误依然存在 另外,这是我的第一个iOS项目,所以请解释一下,就像我是五岁一样 在展开可选值时意外发现nilIos CoreData:错误:调用NSManagedObject类上的指定初始值设定项失败创建失败,ios,swift,core-data,nsmanagedobject,Ios,Swift,Core Data,Nsmanagedobject,我研究了其他问题并尝试了它们的解决方案,但错误依然存在 另外,这是我的第一个iOS项目,所以请解释一下,就像我是五岁一样 在展开可选值时意外发现nil 可能您的backup或backup.integer或任何其他赋值为零。请调试以进行检查。解决方案原来是处理ManagedObjectContext的。我试图在DAO文件中生成它,但需要从ViewController传递它 刀 和视图控制器 coreDataDao.createEntry("a title",context: self.manage
可能您的backup或backup.integer或任何其他赋值为零。请调试以进行检查。解决方案原来是处理ManagedObjectContext的。我试图在DAO文件中生成它,但需要从ViewController传递它 刀 和视图控制器
coreDataDao.createEntry("a title",context: self.managedObjectContext!)
你可以看到我是如何通过它的,它是硬编码的。也许是日期对象。正在调试。很有趣。。。所以我注释掉了DOA文件中的所有内容,并用println替换它来调试数据。数据与预期完全一致。然而,错误依然存在。。。。致命错误消失了,但核心数据错误仍然存在。我没有意识到读数中有两个错误…什么是日记道?为什么要从NSManagedObject继承coreDataDao?它正在实现一个协议。我们的前端专家设置了它,让我做数据库基础工作,将类coreDataDao:NSManagedObject、DiaryDAO更改为类coreDataDao:DiaryDAO,然后告诉我。
class coreDataDao : NSManagedObject, DiaryDAO{
func createEntry(title:String,text:String,date:NSDate,backup:NSNumber,extra:String){
let newItem = NSEntityDescription.insertNewObjectForEntityForName("DiaryEntry", inManagedObjectContext: self.managedObjectContext!) as! DiaryEntry
newItem.title=title
newItem.text=text
newItem.date=date
newItem.extra=extra
newItem.backup=backup.integerValue
}
}
let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
func jTest(){
var dao = coreDataDao()
dao.createEntry("a title",text:"some text", date: NSDate(), backup: 2, extra: "extras")
}
MyApp[9786:438760] CoreData: error: Failed to call designated initializer on NSManagedObject class 'MyAppName.coreDataDao'
fatal error: unexpectedly found nil while unwrapping an Optional value
class func createEntry(title:String,context:NSManagedObjectContext)->DiaryEntry{
if let newItem = NSEntityDescription.insertNewObjectForEntityForName("DiaryEntry", inManagedObjectContext: context) as? DiaryEntry{
coreDataDao.createEntry("a title",context: self.managedObjectContext!)