Skip navigation.
 
mlRe: CoreData: Can't modify an immutable model
FROM : Ben Trumbull
DATE : Tue Feb 05 23:18:37 2008

At 5:04 PM -0500 2/5/08, Sean McBride wrote:
>Ben,
>
>Are you talking about insertNewObject
>ForEntityForName:inManagedObjectContext: ?  Do I understand correctly
>that the moc parameter is in fact optional?  The docs don't say so, but
>I have always wished it was the case.  Can you confirm?  (I'd like to be
>able to set some attributes before NSObjectControllers go changing the UI).


Yes it is optional, but it's not for the faint of heart.  You won't
get relationship maintenance, undo, or the standard notifications
until you call -insertObject:

This is documented under NSManagedObject's designated initializer,
which the convenience method on NSEntityDescription eventually
invokes.

Incidentally, on 10.5, if you're working with a large batch of new
objects, it's a lot faster to look up the entity description once and
use:

MySubclass* mo = (MySubclass*)[[NSManagedObject alloc]
initWithEntity:entity insertIntoManagedObjectContext:moc];

This works as NSManagedObject's +alloc always allocates the correct
Class for the entity you pass into the initializer.  Effectively,
NSManagedObject is a class cluster for the subclasses in your model.
On Tiger, you'd have to do that yourself.
--

-Ben

Related mailsAuthorDate
mlRe: CoreData: Can't modify an immutable model Ben Trumbull Feb 5, 22:50
mlRe: CoreData: Can't modify an immutable model Sean McBride Feb 5, 23:04
mlRe: CoreData: Can't modify an immutable model Ben Trumbull Feb 5, 23:18