Re: Overriding -copyWithZone: the right way
Re: Overriding -copyWithZone: the right way
- Subject: Re: Overriding -copyWithZone: the right way
- From: Jean-Olivier Lanctôt <email@hidden>
- Date: Fri, 5 Nov 2004 13:52:49 -0500
Is there an Apple document that tells us how to do it exactly?
I know we must return an object identical to "self" ... but do we
invoke super copyWithZone? etc. etc.
On Fri, 5 Nov 2004 19:31:36 +0100, M. Uli Kusterer
<email@hidden> wrote:
> At 17:46 Uhr +0100 05.11.2004, Michael Becker wrote:
>
>
> >- (id)copyWithZone:(NSZone *)zone {
> > PCShoppingCartCell *copy = [[ PCShoppingCartCell alloc]
> >initImageCell:nil];
> > return copy;
> >}
> >
> >This does not crash, but it looks so suspiciously memory-leaking...
> >(the alloc/init is not paired with a release on my side). When
> >trying to follow the (few) suggestions the docs give me, I tried
> >this (but it did not work, the app crashed as soon as the TableView
> >wanted to redraw):
>
> That's just fine. It doesn't leak, because methods with "copy" in
> their name, by definition, return retained objects. So, whoever calls
> this method knows they're responsible for releasing the object they
> get.
>
> I'm not sure though whether you shouldn't be calling [super
> copyWithZone: zone] instead of allocating a new object, and then just
> copy over those instance variables your subclass adds to the ones of
> the superclass.
> --
> Cheers,
> M. Uli Kusterer
> ------------------------------------------------------------
> "The Witnesses of TeachText are everywhere..."
> http://www.zathras.de
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Cocoa-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
>
--
--Olivier
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden