2017-08-01 71 views
4

我用CDModel.xcdatamodeld中的一個屬性'名稱'創建了簡單實體'CDWorkout'。 AppDelegate中的容器名稱也是'CDModel'。 CDWorkout的Class Codegen是Category/Extension。下面是CDWorkout類代碼:'類'className'的NSManagedObject必須具有有效的NSEntityDescription。'錯誤

class CDWorkout: NSManagedObject { 

    class func createWorkout(workoutInfo : Workout, in context: NSManagedObjectContext) -> CDWorkout{ 
     let workout = CDWorkout(context: context) 
     workout.name = "anyName" 
     return workout 
    } 
} 

的createWorkout功能從另一個的viewController調用上下文參數爲container.viewContext,但立即用消息崩潰:

終止應用程序由於未捕獲的異常「NSInvalidArgumentException」,原因:'類'Workout_Generator.CDWorkout'的NSManagedObject必須有一個有效的NSEntityDescription。'

我忘了什麼?

回答

9

問題是我沒有選中Class Module:CDWorkout Entity的當前產品模塊。

0

您需要創建新的NSManagedObject,你將能夠使用它

let workout = NSEntityDescription.insertNewObjectForEntityForName("CDWorkout", 
    inManagedObjectContext: context) as! CDWorkout 

現在你可以設置名稱之前一樣:workout.name = "any_name"

你可以參考CoreData Documentation更多信息有關CoreData

相關問題