NSMutableDictionary is a collection object similar to an array (NSArray). However an NSArray is an ordered list you access using an index value. Dictionary objects are not ordered and instead each object has a key (usually a string) which you use to access it.
If you add an object to a dictionary using an existing key value, the new object replaces the existing object.
Creating A Unique Key
//Generate a unique ID
CFUUIDRef newUniqueId = CFUUIDCreate (kCFAllocatorDefault);
CFStringRef newUniqueIdString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
[MyStringVariable:(NSString *)newUniqueIdString]; //Use key here
CFRelease(newUniqueIdString);
CFRelease(newUniqueId);
Creating Dictionary Example
NSMutableDictionary *recordSettings = [[[NSMutableDictionary alloc] init] autorelease];
[recordSettings setValue:[NSNumber numberWithInteger:kAudioFormatAppleLossless]
forKey:AVFormatIDKey];
[recordSettings setValue:[NSNumber numberWithFloat:44100.0f]
forKey:AVSampleRateKey];
[recordSettings setValue:[NSNumber numberWithInteger:1]
forKey:AVNumberOfChannelsKey];
[recordSettings setValue:[NSNumber numberWithInteger:AVAudioQualityMedium]
forKey:AVEncoderAudioQualityKey];