Can't instantiate subclass of NSManagedObject Can't instantiate subclass of NSManagedObject xcode xcode

Can't instantiate subclass of NSManagedObject


Just came across the same problem: Init method for core data entity not available

Obviously we have to implement the

init(entity: NSEntityDescription, insertIntoManagedObjectContext context, NSManagedObjectContext?)

method in our custom NSManagedObject class. So just add

override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {    super.init(entity: entity, insertIntoManagedObjectContext: context)}

to your entity class and it will work.


Try the final line without exclamation mark, like this:

var item = Item(entity: ent, insertIntoManagedObjectContext: context)

And maybe You haven't added your app name to class name:

Swift classes are namespaced—they’re scoped to the module (typically, the project) they are compiled in. To use a Swift subclass of the NSManagedObject class with your Core Data model, prefix the class name in the Class field in the model entity inspector with the name of your module.

Class namehttps://developer.apple.com/library/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WritingSwiftClassesWithObjective-CBehavior.html