Re: NSTextView won't deallocate
Re: NSTextView won't deallocate
- Subject: Re: NSTextView won't deallocate
- From: R <email@hidden>
- Date: Mon, 18 Jul 2011 15:26:14 -0700 (PDT)
http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/TextUILayer/Tasks/CreateTextViewProg.html#//apple_ref/doc/uid/20000930
On Jul 18, 3:30 pm, Peter <email@hidden> wrote:
> Yes - so the more appropriate question is why it was retained 4 times.
> I don't see Cocoa doing it.
> It's the programmer - mostly.
> Could you give us more code?
>
> Cocoa gives us a very reliable way to know, when an object is released: If the reference count goes down to 0.
> The question now is how to bring it down to 0.
>
> Maybe these could be of help:
>
> <http://www.friday.com/bbum/2010/01/10/using-malloc-to-debug-memory-mi...>
> <http://chanson.livejournal.com/147902.html>
>
> Both have some special tips which helped me a couple of months ago.
>
> Am 18.07.2011 um 16:17 schrieb Ryan Joseph:
>
>
>
>
>
> > Sure, I get reference counted memory and it could very well be true that Cocoa has no intent on releasing this at anytime I could expect and that was its design.
>
> > If that's true when I would ask WHEN will it be deallocated? I'm leaking memory like crazy allocating these objects and would argue it's bad design on Cocoas part to not give the programmer a reliable way to know when it's memory will be released, as for example we may need to perform some clean up when the object is released.
>
> > I wonder why Cocoa has retained it 4 times and what it plans to do with it since I don't see thing that will cause the memory to be released.
>
> > Thanks.
>
> > On Jul 18, 2011, at 8:07 AM, Peter wrote:
>
> >> Maybe I am missing something, but given your example - which in some sense contradicts your comment, why do you expect dealloc to be called?
> >> If the retain count is in fact > 0 after the release (4 in your example below) dealloc is not called, since the view can not yet be deallocated.
> >> View.release just means "*I* (i.e. the caller) don't care about you any longer". But if some other object still cares (i.e. the retain count > 0, as in your example), dealloc won't be called. In short: release != dealloc. Or the other way round: only after x retains are balanced by the same number of release messages, dealloc eventually will be called by the runtime and the object is finally cleaned up and purged from memory.
>
> >> Sorry if I am getting you wrong and point out the obvious ...
>
> > Regards,
> > Ryan Joseph
> > thealchemistguild.com
>
> _______________________________________________
>
> 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
>
>
> This email sent to email@hidden
_______________________________________________
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