On 09.08.2012, at 01:21, Graham Cox <graham....@bigpond.com> wrote:
> If a superclass implements copies using NSCopyObject, then any pointer ivars 
> we add in a subclass need to be additionally -retained. But if the superclass 
> implements copy by alloc/initing a new object and setting properties, then 
> this extra step would lead to an over-retain and so leak.

 Not really. It *must* correctly do the additional retains for the ivars it 
created, but yours are just copied as integers to the new object. So you could 
simply rely on that if you know your base class uses NSCopyObject(). 
Alternately (and more safely) you can just ignore the value in there (as you 
know it either hasn't been retained, or is NIL altogether) and change the ivar 
directly without going through any getter/setter:

foo = [other->foo retain];

 Now all is hunky-dory, with or without NSCopyObject.

Cheers,
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
http://www.zathras.de




_______________________________________________

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

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

Reply via email to