Namaste!

OK, I hit on a solution...

Again, thanks Sean for your reply, further digging following that route got
me what I needed.

I found this post:

http://www.cocoabuilder.com/archive/message/cocoa/2005/9/5/145766

This gave me the template I needed to implement this (abbreviated):

-(void)awakeFromInsert
{
     [self performSelector:@selector(setAttribute) withObject:nil
afterDelay:0];
}

-(void)setAttribute
{
        int num  = 0;

        NSArray *a;
        NSManagedObjectContext *moc = ...;
        
        NSFetchRequest *request = ...;
        [request setEntity:[self entity]];
        
        NSError *e = ...;

        a = [moc executeFetchRequest...];

        if( a != nil )
        {
                num = [[a valueForKeyPath:@"@max.attribute"] integerValue];
        }

        num ++;

        [self setAttribute:[NSNumber numberWithInt:num]];
}

Which worked wonderfully.

Thanks to mmalc for posting the original reply (referenced above) which
provided the template I was looking for.

Peace, Love, and Light,
 
/s/ Jon C. Munson II


> -----Original Message-----
> From: [email protected] [mailto:cocoa-dev-
> [email protected]] On Behalf Of Jon C. Munson II
> Sent: Thursday, March 19, 2009 10:10 AM
> To: 'Sean McBride'; 'Cocoa Developers'
> Subject: RE: [Q] "auto"-incrementing integer attribute in awakeFromInsert
> 
> Namaste!
> 
> Thank you for your answer.
> 
> I did some digging and found that the real issue is the call for
> processPendingChanges that apparently is called via the executeFetch.
> According to what I read this is standard behavior.
> 
> So, I'd have to say it isn't a "bug" in this case.
> 
> Relative to the performSelector you suggested, I am not able to locate a
> sample that shows how to use that in conjunction with awakeFromFetch in
> order to do what I'd like.  Do you know of a sample somewhere that shows
> such use?
> 
> Also, would a better solution be to create a custom -addEntity method that
> fetches the next value, then calls the NSArrayController's add (or a more
> relevant -add), then updates the relevant attribute?
> 
> To me it makes far more sense to put such stuff in the awakeFromInsert, so
> I'd consider the above a kludge, however, if that, in this case, is what
> needs doing...
> 
> Many thanks in advance!
> 
> Peace, Love, and Light,
> 
> /s/ Jon C. Munson II
> 
> > -----Original Message-----
> > From: Sean McBride [mailto:[email protected]]
> > Sent: Wednesday, March 18, 2009 12:17 PM
> > To: [email protected]; 'Cocoa Developers'
> > Subject: Re: [Q] "auto"-incrementing integer attribute in
> awakeFromInsert
> >
> > On 3/18/09 11:52 AM, Jon C. Munson II said:
> >
> > >What happens is the attribute is set with the correctly incremented
> > number.
> > >However, the tableview that is used to manage this entity displays two
> > rows
> > >every time a new entity is inserted.
> >
> > Fetching from awakeFromInsert is discouraged.  There are some bugs/
> > problems.  If you have an NSArrayController that will make use of the
> > object you're inserting (seems to be your case), it will receive
> > duplicate KVO notifications.  Please file a bug with a repro case to
> > Apple.
> >
> > >So, my question is, how do I resolve the two-row error, or, is there a
> > >better way?
> >
> > You're best bet is using performSelector:withObject:afterDelay: in
> > awakeFromInsert, that way you're not fetching in awakeFromInsert.
> >
> > --
> > ____________________________________________________________
> > Sean McBride, B. Eng                 [email protected]
> > Rogue Research                        www.rogue-research.com
> > Mac Software Developer              Montréal, Québec, Canada
> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list ([email protected])
> 
> 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/jmunson%40his.com
> 
> This email sent to [email protected]

_______________________________________________

Cocoa-dev mailing list ([email protected])

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