• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Accessor method styles
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: Accessor method styles
      • From: Sean Murphy <email@hidden>
    • Re: Accessor method styles
      • From: Andrew Merenbach <email@hidden>
    • Re: Accessor method styles
      • From: Alberto Ricart <email@hidden>
    • Re: Accessor method styles
      • From: Ricky Sharp <email@hidden>
    • Re: Accessor method styles
      • From: Shawn Erickson <email@hidden>
  • Prev by Date: [Solved] Re: Unsupported action type: GoToR
  • Next by Date: Re: Accessor method styles
  • Previous by thread: [Solved] Re: Unsupported action type: GoToR
  • Next by thread: Re: Accessor method styles
  • Index(es):
    • Date
    • Thread