On Apr 26, 2011, at 8:28 PM, Guy Steven wrote:

> I am currently learning objective c and cocoa
> 
> I believe I understand the difference between properties and instance
> variables, and the effect of using properties as opposed to instance
> variables viz a viz KVO and memory management.
A property is really get and/or set methods, so...

> What I can't understand is why you would access instance variables directly
> within a class. My quess is speed. Is there any other reason?

...a property may or may not simply do a "return foo;" or "foo = value;" as its 
behavior. It may, for example, lazily create an object when called or it may 
have some other side effects that are required when accessed by a caller; those 
same requirements might not be needed or desired when using the ivar from 
within the class.

> And related to this, why give instance variables a name different to the
> name of the property.

You might want to name an instance variable _foo or mFoo, etc., to distinguish 
it from a local variable or parameter. (And that would be personal style.)

> Again, I suspect it may be a matter of style, but would like to know if
> there are cases where it is a necessity.

I believe it's only necessary if you want to do a straight "@synthesize foo;", 
which would expect the instance variable to have the same name as the property.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to