On Oct 27, 2008, at 12:40 PM, Andy Lee wrote:

On Oct 27, 2008, at 3:25 PM, Ron Lue-Sang wrote:
On Oct 27, 2008, at 10:49 AM, Jerry Krinock wrote:
So it seems like I need to instead use my own instance variable, myMOC. Something like this should work:

- (NSManagedObjectContext*)managedObjectContext {
 if (![self myMOC]) {
     NSManagedObjectContext* newMOC ;
        //
     // ... code to alloc, initialize and configure newMOC
     //
     [self setMyMOC:newMOC] ;
     [myMOC release] ;
 }

 return [self myMOC] ;
}

But it seems odd that now super's instance variable managedObjectContext will just sit there forever, pointing to nil. Is this the proper intended usage?


Yes, that's the intended usage. Use your own storage or call super.

Should he also override -setManagedObjectContext:?

He may choose to. It may be sufficient for him to create a new context in init and call [self setManagedObjectContext:] and never have to override either accessor.

If you're worried about some other context being set here, then yea. You'd need to override this and check/handle when the context isn't one of "yours".



My 2 cents: this seems like a brittle design -- it expects the overrider to know that the superclass never uses the ivar directly except in accessors, and it expects the implementer of the base class to remember never to use the ivar directly. In any case, I think the documentation could be clearer and I'll send feedback to that effect.

Yea, I see your point. Please file away.
Thanks



--Andy



--------------------------
RONZILLA



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to