swiftcore-data

'An NSManagedObject of class 'className' must have a valid NSEntityDescription.' error


I've created simple entity 'CDWorkout' with one attribute 'name' inside CDModel.xcdatamodeld. Name of container in AppDelegate is also 'CDModel'. Class Codegen for 'CDWorkout' is Category/Extension. Here is code for CDWorkout class:

class CDWorkout: NSManagedObject {

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

the createWorkout function is called from another viewController with context argument as container.viewContext but it immediately crashes with message:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'An NSManagedObject of class 'Workout_Generator.CDWorkout' must have a valid NSEntityDescription.'

What did i forget about?


Solution

  • The issue I had was that I needed to have the Class Module set to Current Product Module for my CDWorkout Entity.

    In Xcode 10 there is a drop down in the Class section of the Data Model Inspector.