On Mar 30, 2011, at 9:53 AM, Apple Developer wrote:

> Why were the NSNumber objects not released when the pool was released?

In your example the numbers were added to an array that was then added to 
another object (list). Since each of these steps would normally retain the 
objects as well, until 'list' was released, none of the other objects would be 
as well.

> What am I doing wrong?

I don't think there is anything you are "doing" wrong, but you may need to 
refresh your understanding of retain-count based memory management. All an 
autorelease pool does is accumulate objects that will be released later. A 
release does not imply a deallocation, simply a relinquishing of ownership. If 
something else has a claim of ownership the object will not be released until 
that object gives up its claim, which is what is happening here.

Autorelease pools can be useful when you have a process which creates lots of 
objects that are otherwise short lived, but your particular case doesn't have 
that, since all of these objects end up being referenced, directly or 
indirectly, via the 'list' object.

--
David Duncan

_______________________________________________

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

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

Reply via email to