Have you considered that the code for -release may be implemented in a manner like this?
-(oneway void)release { if (1 == self->retainCount) { // Let's save a few CPU cycles and not bother // decrementing retainCount since it won't be // around for long. [self dealloc]; } else { self->retainCount--; } } On 08/23/2010 6:35 PM, "Jerry Krinock" <je...@ieee.org> wrote: > Kind of late in the decade for this, but anyhow, the documentation for > -release says: > > - (oneway void)release > Decrements the receiver’s reference count. > Discussion. The receiver is sent a dealloc message when its reference > count reaches 0. > > So it's always bothered me that if I override -dealloc and log the retainCount > on the way in, it is 1, not 0. > > Upon doing some experiments, I believe that the first sentence in that > documentation is wrong. It should say this instead: > > If the receiver's retainCount is greater than 1, decrements it. Otherwise, > invokes -dealloc. > > Reading the document Memory Management Programming Guide ▸ Object Ownership > and Disposal, one gets a similar false impression, although this document is > vague enough that it is only misleading, not wrong. > > OK, someone tell me why I'm wrong about this > :) _______________________________________________ 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 arch...@mail-archive.com