Yes, you can simply use NSManagedObject as a regular object - it is not only for access to the data warehouse, it is intended for direct use as a model object. Copying data back and forth between instances of different classes like this is a big part of the extra work without any benefit.
Since you are adding custom code, I highly recommend that you use mogenerator to create subclasses of NSManagedObject . This will make it easier to save your custom code if / when you need to change your model.
source share