• 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
Re: Implied use of Properties
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Implied use of Properties


  • Subject: Re: Implied use of Properties
  • From: Klaus Backert <email@hidden>
  • Date: Fri, 2 Apr 2010 23:21:52 +0200

Hi, Dave

On 2 Apr 2010, at 22:48, Dave wrote:

Hi All,

I came across this code and was wondering if this is normal practice and/or considered good coding style.

Given two classes ClassX and ClassY:

@interface ClassX
{
ClassY	mClassY;
}

@property (nonatomic,retain,readonly)		ClassY*		mClassY
@end

@interface ClassY
{
int		mClassYValue;
}

@property (nonatomic,retain,readonly)		ClassY*		mClassY

@end

@implementation ClassX

-(ClassY*) mClassY
{
if (mClassY == nil)
	{
	mClassY [[ClassY alloc] initWithData:someData]:
	}
return mClassY;
}


Then later in another method of ClassX, I found the following code:

self.mClassY. mClassYValue = someValue;

Before this statement is executed, self. mClassY is nil. When it is executed it causes the "mClassY" method to be called which allocates the Class and sets the Variable.

There are some typing errors in this code, I think, but anyway, this might be a case of lazy creation of an object inside a getter of another object. You will find the same e.g. in Apple's code examples about OpenGL, where the OpenGL context is an instance variable of the OpenGL view. Accessing the context is managed by a getter method or property, respectively, of the view, where, in the case of the instance variable being nil, the context is created, stored in the instance variable, and eventually returned. I call the creation "lazy", because it is done at the latest point during execution, immediately before it is needed. For me this practice is normal.


But, may be, I don't understand your question correctly.

regards
Klaus

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Implied use of Properties
      • From: Dave <email@hidden>
References: 
 >Implied use of Properties (From: Dave <email@hidden>)

  • Prev by Date: Re: Implied use of Properties
  • Next by Date: Re: MutableArray losing contents
  • Previous by thread: Re: Implied use of Properties
  • Next by thread: Re: Implied use of Properties
  • Index(es):
    • Date
    • Thread