2017-03-27 45 views
0

我得到這個錯誤:「+ entityForName:無不是合法的NSManagedObjectContext參數搜索實體名稱‘電影’」

「+ entityForName:零是不是一個合法的NSManagedObjectContext參數 尋找實體命名'電影」

每當我試着和保存的東西coreData,我想知道我怎麼能擺脫它。我在網上搜索,但看起來像大多數的答案是在Objective-C中,當需要一個迅速的解決方案。如果它有什麼不同,我在創建項目後手動添加coreData。確保所有的鍋爐板代碼都被拷貝到了AppDelegate for coreData。這是如何保存數據:

func saveToCoreData(id: NSNumber) { 

    guard let appDelegate = 
     UIApplication.shared.delegate as? AppDelegate else { 
     return 
    } 

    let managedContext = 
     appDelegate.persistentContainer.viewContext 

    let entity = 
     NSEntityDescription.entity(forEntityName: "Movie", 
           in: managedContext)! 

    let id = NSManagedObject(entity: entity, 
           insertInto: managedContext) 

    id.setValue(id, forKeyPath: "id") 

    do { 
     try managedContext.save() 
     savedCoreDataMovieIdArray.append(id) 
    } catch let error as NSError { 
     print("Could not save. \(error), \(error.userInfo)") 
    } 
    } 

回答

0

我懷疑是什麼原因造成的問題,但我相信你需要調用appDelegate來保存上下文。只是爲了確定是什麼導致了這個問題:

func saveToCoreData(id: NSNumber) { 

    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    let managedContext = appDelegate.persistentContainer.viewContext 
    let entity = NSEntityDescription.entity(forEntityName: "Movie", in: managedContext) 

    let id = NSManagedObject(entity: entity!, insertInto: managedContext) 

    id.setValue(id, forKeyPath: "id") 

    do { 
    try appDelegate.save() 
    } catch let error as NSError { 
    print("Could not save. \(error), \(error.userInfo)") 
    } 
} 

如果它沒有解決,請分享您的CoreData模型的屏幕截圖。

+0

我想出了什麼問題,因爲我複製並粘貼來自另一個項目的鍋爐代碼,它仍然使用該項目名稱作爲持久性存儲。 – SwiftyJD

+0

@SwiftyJD如果這是你的解決方案,那麼請發佈一個答案,讓其他觀衆可以看到它。 –

相關問題