Skip navigation.
 
mlRe: Accessor method styles
FROM : Andrew Merenbach
DATE : Tue Aug 29 17:57:04 2006

Thanks to all who clarified for me.  I now have a great deal more 
insight into the standard accessor idioms.

Cheers,
   Andrew

On Aug 29, 2006, at 7:53 AM, Andrew Merenbach wrote:

> Hi, all.  I've seen threads where this has been beaten to death, 
> but I am still left with major questions.  I have seen several 
> kinds of accessor/mutator methods:
>
> - (void)setFoo:(AMFoo *)aFoo {
>     [aFoo retain];
>     [myFoo release];
>     myFoo = aFoo;
> }
>
> - (void)setFoo:(AMFoo *)aFoo {
>     if (aFoo != myFoo) {
>         [myFoo release];
>         myFoo = [aFoo  retain];
>     }
> }
>
> - (void)setFoo:(AMFoo *)aFoo {
>     id oldFoo = myFoo;
>     myFoo = [aFoo retain];
>     [oldFoo release];
> }
>
> - (void)setFoo:(AMFoo *)aFoo {
>     [myFoo autorelease];
>     myFoo = [aFoo retain];
> }
>
> My question is not precisely which is "better," as my understanding 
> is that they *all* (or at least the first two and the last one) 
> have their merits, speed considerations, etc.
>
> What I want to know, as an intermediate Cocoa programmer--and what 
> I have been unable (at least with my own searching) to find on the 
> archives--is what are the *advantage* and *disadvantages* of each? 
> I know some basics, such as that the last one can apparently make 
> debugging in a crash situation rather difficult due to the -
> autorelease call.
>
> But what about number three, for instance?  Is it better than 
> number two?  Does Apple really recommend number one?  Why?
>
> Sorry to list moderators, administrators, and readers for a 
> question on what may be largely a matter of taste, but as I say, 
> I'm not as interested in opinions on which is *better* as I am in 
> becoming more experienced with descriptions of the merits and 
> possible problems encountered with each type of accessor.
>
> Many thanks,
>     Andrew
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list      (<email_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/andrew.merenbach%
> 40ucla.edu
>
> This email sent to andrew.<email_removed>

Related mailsAuthorDate
mlAccessor method styles Andrew Merenbach Aug 29, 16:53
mlRe: Accessor method styles Shawn Erickson Aug 29, 17:15
mlRe: Accessor method styles Ricky Sharp Aug 29, 17:18
mlRe: Accessor method styles Alberto Ricart Aug 29, 17:51
mlRe: Accessor method styles Andrew Merenbach Aug 29, 17:57
mlRe: Re: Accessor method styles Shawn Erickson Aug 29, 18:08
mlRe: Accessor method styles Sean Murphy Aug 29, 18:10