Hi Mazen, Yes, objects that are added to collections objects (array, set, dictionary) are automatically retained by that collection and not released until removed from the collection or the collection is deallocated. If you don't need them "anywhere else outside the dictionary", then you should release them only if you own them (ie, you retained, alloc'd, new'd, create'd, etc).
Since you created the dictionary with a convenience method, it is autoreleased and you do not need to release it yourself. It will be released when the autorelease pool to which it belongs gets drained. This document contains everything you need to know: http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html Additionally, if you have questions about a particular method, the documentation for that method will usually indicate how it works on that object. For example, NSMutableDictionary's setObject:forKey: method: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableDictionary_Class/Reference/Reference.html#//apple_ref/doc/uid/20000141-BABBDAFD HTH! Dave On Nov 28, 2009, at 2:19 PM, Mazen M. Abdel-Rahman wrote: > Hi All, > > I am trying to find out how memory is retained/released when using different > Cocoa collection classes. Is there a good resource on this anyone can > connect me to? > > Here is some detailed questions about what I am trying to find out: > > If I create a dictionary in the following manner (where myArray is an > NSArray* and authorName is an NSString*) > > NSDictionary * myDict = [NSDictionary dictionaryWithObjectsAndKeys:myArray, > @"Titles", authorName, @"Name",nil]; > > Does this call automatically increase the retain count of myArray and > authorName? So that I should call release on them if I don't need to have > them anywhere else outside the dictionary? Or will calling release on them > mess up the dictionary? > > Also - once I am done with this dictionary - since I created it using a > class method (and not alloc) - am I right in assuming that I should not call > release on it? And if that is the case when does it get released? > > Thanks for your help! > Mazen Abdel-Rahman > _______________________________________________ > > Cocoa-dev mailing list ([email protected]) > > 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/davedelong%40me.com > > This email sent to [email protected]
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
