Re: NSString Class Instance Variables
Re: NSString Class Instance Variables
- Subject: Re: NSString Class Instance Variables
- From: Greg Parker <email@hidden>
- Date: Tue, 13 Oct 2009 16:38:38 -0700
On Oct 13, 2009, at 4:29 PM, Graham Cox wrote:
On 14/10/2009, at 6:40 AM, Richard Somers wrote:
The same is true for NSArray, NSSet, and other foundation classes.
If the class has no instance variables, what does it do for storage?
Apart from the class cluster answer you already got, the public
headers don't need to include any instance variables even if they
exist in reality. You can do this yourself - compile the code using
the 'real' headers then publish a public header that strips the
ivars and only includes any public API you want to expose. It's a
good habit to mark ivars as @private unless you really, really
cannot avoid doing that, and if they are private there's no need to
publish them.
On 32-bit Mac, if you strip ivars from the header then other code
cannot subclass that class. The compiler will put subclass and
superclass ivars in the same place, leading to exciting data
corruption bugs.
All system frameworks are honest about their ivars, because they need
to support subclasses.
--
Greg Parker email@hidden Runtime Wrangler
_______________________________________________
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