About NSDictionary

In the Cocoa Touch world, a dictionary is an object that holds a collection of values, each of which is associated with a unique key (sort of like a label). A combination of the key and its value is known as a key-value pair and makes up an entry in the dictionary. Keys within a single dictionary need to be unique, but you are free to reuse key names in different dictionary objects in the same scope. Cocoa Touch provides an NSDictionary class for a dictionary whose contents and size remain fixed once it is created and an NSMutableDictionary class (a subclass of NSDictionary) for a dictionary whose individual entries can change over time. If you’re looking for an analogue in the JavaScript world, the associative array comes closest in conception in that you can access a value by way of the value’s name. But NSDictionary is a far more powerful entity than what JavaScript offers.

Each value stored in an NSDictionary must be an Objective-C object—the same requirement as for NSArray. For example, numeric values are best represented by the NSNumber class, and you must wrap scalar values inside the NSValue class. An object may also be another dictionary, allowing for nested dictionaries if your data requires such a structure. Although you can use any Objective-C object as a key, an NSString is the most common way to represent a key.

Creating an NSDictionary

One point to always keep in mind when creating an NSDictionary is that you have to supply data in pairs—one key and ...

Get Learning the iOS 4 SDK for JavaScript Programmers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.