NSDictionary

Crowd-sourced documentation and tutorials by the Cocoa developer community
Revision as of 16:10, 29 April 2012 by Importer (Talk | contribs)

Jump to: navigation, search

Documentation from the AppleDeveloperConnection:

http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html

See FoundationCollections for a general overview; see DesignDictionary for a critique of the dictionary design in general.


Notes:

Here's a little example I threw together to use NSDictionary with some strings. It's not particularly good, but it might help you understand a little better.

  1. import <Cocoa/Cocoa.h>

int main(int argc, const char argv[]) {

   NSDictionary dict;
   NSEnumerator enumerator;
   id key;
   NSAutoreleasePool  pool = [[NSAutoreleasePool alloc] init];
   
   dict = [[[NSDictionary]] dictionaryWithObjectsAndKeys:
                  @"A beverage prepared by heating cocoa with water/milk",
                  @"cocoa", 
                  @"http://www.cocoadev.com/",
                  @"cocoadev", 
                  @"4 : a list (as of items of data or words) stored in a \
                      computer for reference (as for information retrieval \
                      or word processing)",
                  @"dictionary",
                  nil];
   
   // printf("entry for cocoa: %s\n\n",
   //        [[dict objectForKey:@"cocoa"]cString]);
   // Use of the cString method is discouraged ASCII is out Unicode is in.
   // Also watch out for [[dict objectForKey:@"cocoa"]cString] notice the
   // lack of a space between the receiver and the message.
   // And lastly since this is a Cocoa example why not use an NSLog()
   NSLog(@"entry for cocoa: %@", [dict objectForKey:@"cocoa"]);
   enumerator = [dict keyEnumerator];
   
   while ((key = [enumerator nextObject])) {
       //printf("%s : %s\n", [key cString],
       //        [[dict objectForKey: key] cString]);
       NSLog(@"%@ : %@", key, [dict objectForKey:key]);
   }
   
  [pool release];
   return 0;//NSApplicationMain(argc, argv);

}


I switched the order of "dictionary" and its definition. It looked like it was in key-object order instead of object key. -- GKinnel

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox