Is it ok to add ivars and methods to an instance of NSManagedObject?
By "extra", I mean ivars that you don't want serialized.
Do I just add them to my NSManagedObject subclass like any other class or do I have to take any extra precautions?
A managed object context represents a single object space, or scratch pad, in a Core Data application. A managed object context is an instance of NSManagedObjectContext . Its primary responsibility is to manage a collection of managed objects.
In some respects, an NSManagedObject acts like a dictionary—it's a generic container object that provides efficient storage for the properties defined by its associated NSEntityDescription instance.
Still inside the Core Data editor, go to the Editor menu and choose Create NSManagedObject Subclass. Make sure your data model is selected then click Next. Make sure the Commit entity is checked then click Next again.
You can do exactly what you described. If the ivars aren't in the entity description, they aren't part of the underlying model. Core Data actually has explicit support for NSManagedObject attributes that aren't persisted, though — they're marked "transient". If you do make custom ivars, though, you should remember to let go of the "extra" instance variables in didTurnIntoFault
rather than dealloc
like you would with a normal object.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With