Accessor method styles
Accessor method styles
- Subject: Accessor method styles
- From: Andrew Merenbach <email@hidden>
- Date: Tue, 29 Aug 2006 07:53:25 -0700
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@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden