Re: In-loop releasing of objects does not free memory?
Re: In-loop releasing of objects does not free memory?
- Subject: Re: In-loop releasing of objects does not free memory?
- From: Randall Meadows <email@hidden>
- Date: Thu, 14 Feb 2008 09:31:02 -0700
On Feb 14, 2008, at 1:43 AM, Arthur C. wrote:
I think a better way to explain this would be, "try wrapping the
body of > the loop in an autorelease pool."
That did the job. It is simple:
{ // loop
NSAutoreleasePool * loopPool = [[NSAutoreleasePool alloc] init];
<do various things>
[loopPool release];
}
Indeed, there were autoreleased objects created in the loop that I
didn't consider.
In theory, a better way to do this would be:
NSAutoreleasePool * loopPool = [[NSAutoreleasePool alloc] init];
{ // loop
<do various things>
[loopPool drain];
}
But I have to admit, I recall having an issue where drain: didn't seem
to work very well, so I ended up doing exactly what you did. It
didn't seem to be a performance issue for me, so I didn't take the
time to investigate why drain: didn't work; it bugged the crap out of
me to be creating an object like that every time through the loop, but
I had more pressing things to deal with.
Anyone else noticed this behavior with drain: or otherwise have an
explanation?
_______________________________________________
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