On Tue, Apr 27, 2010 at 1:49 PM, Bill Appleton <billapple...@dreamfactory.com> wrote: >>> Over the years, I think that looking at the retain count is the #1 cause > of hairpulling on this list. > > > it's too bad this is unreliable > > an object should be able to return this info > > and it isn't simple, it gets convoluted in process > > if i add a submenu to an item then it is retained by the menu > > but then if i then set that submenu to nil is it still retained? > > if retained count was accurate you could test it on final release, etc
The retain count is accurate and it is tested on the "final" release to make the decision about deallocating the object. What isn't useful about retain count it trying to poke at the value at any given point in time and trying to make sense of why the count is a particular value. The Cocoa framework, etc. can retain and release/autorelease objects that you use as you use them with various framework APIs. When and what it does in an implementation detail that easily changes between OS released, etc.. Also the retain count doesn't reflect any pending autoreleases. If you want to evaluate object life cycle issues you should use Instruments (Object Allocations, Zombies, and/or Leaks templates). Using Instruments you can get timeline of retain / release / autorelease messages sent to a given object. You can expect the framework and any properly written code to retain objects as needed to ensure they live as long as needed. When no longer needed they will release/auotorelease their "claim" on the object (balance any retains they sent to establish a "claim"). One of the biggest problem folks have when first getting into Cocoa development is over thinking memory management... it truly is simple and the core memory management model is follow pervasively in all frameworks provide by Apple and third parties. -Shawn _______________________________________________ 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