Skip navigation.
 
mlAccessor method styles
FROM : Andrew Merenbach
DATE : Tue Aug 29 16:53:25 2006

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

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