![](/img/trans.png)
[英]Swift CoreData: error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject'
[英]CoreData: error: Failed to call designated initializer on NSManagedObject class failing on create
我查看了其他問題並嘗試了解決方案,但錯誤仍然存在。
另外,這是我的第一個iOS項目,因此請像我五歲一樣解釋。<
好的,所以我有一個日記條目實體,看起來像這樣:
import Foundation
import CoreData
class DiaryEntry: NSManagedObject {
@NSManaged var title: String
@NSManaged var text: String
@NSManaged var date: NSDate
@NSManaged var extra: String
@NSManaged var backup: NSNumber
}
以及,我有一個像這樣的DAO文件(摘要)import Foundation import CoreData
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
}
}
最后,在我的viewcontroller中調用,我具有以下功能:
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
我整天都在嘗試各種方法,包括有關此錯誤的大多數SO解決方案,但我無法解決。 提前致謝
這里的關鍵是
展開Optional值時意外發現nil
也許您的backup或backup.integer或任何其他分配的值為nil。 請調試進行檢查。
原來該解決方案正在處理ManagedObjectContext。 當需要從ViewController傳遞它時,我會在我的DAO文件中生成它。
道
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!)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.