FROM : Jean-Olivier Lanctôt
DATE : Fri Nov 05 19:52:49 2004
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
<witness.of.<email_removed>> 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_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>
>
--
--Olivier
DATE : Fri Nov 05 19:52:49 2004
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
<witness.of.<email_removed>> 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_removed>)
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/<email_removed>
>
> This email sent to <email_removed>
>
--
--Olivier






Cocoa mail archive

