@interface A(MyCategory) -(void)someMethodWhichLegallyAccessesThePrivateVariablePriv;
@end That's legal, I can write a category against an already-compiled class without having the source and without recompiling it and I can access any of the private variables of that class. So no the compiler cannot throw away instance variables when it compiles the class originally even if no method of A used them originally because someone might go write a category against the compiled object which needs it later. I'm sure there are other, much simpler reasons. On 26-May-2010, at 8:41 PM, vincent habchi wrote: > Le 26 mai 2010 à 14:22, Graham Cox a écrit : > >> I'm pretty sure you are mistaken. If this were even remotely true, object >> programming would be impossible. >> >> @private only declares the visibility of an ivar to its subclasses, it does >> not give the compiler carte blanche to write over anything it fancies. > > Hmmm... Let's say you have a class A with a private variable "priv" and b a > pointer to a subclass of A. Is: > > [(A *)b priv] > > legal? > > Now, admitting B never accesses any of A variables, can the compiler optimize > space by throwing away all A private variables? > > Vincent > > PS: thanks for this "carte blanche" > :)_______________________________________________ > > 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/rols%40rols.org > > This email sent to r...@rols.org _______________________________________________ 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