NSDictionary创建、引用、遍历及操纵字典内容等功能
(1)创建字典
应用需要对列表中的对象进行分组,你想要通过键来引用对象。
解决方案
可以通过两个Objective-C Foundation 类——NSDictionary 与NSMutableDictionary 来创建带有键的对象列表。如果不需要修改列表,就使用NSDictionary;如果在后面要向字典中添加或删除对象,就使用NSMutableDictionary。
说明
在Objective-C 中,字典的创建与其他对象一样:可以使用alloc 与init 构造函数,或者使用dictionaryWithObjects:forKeys:等便捷函数创建字典。如果使用NSDictionary 创建字典,那么字典一旦创建完毕后,就无法再进行修改。使用NSMutableDictionary 创建的字典可以在后面进行修改。在下面的示例中,创建的字典包含了不同语言版本的Hello World。该短语的每个版本都会被录入到相应的语言中:
NSArray *listOfObjects = [NSArray arrayWithObjects:@"Hello World",
@"Bonjour tout le monde", @"Hola Mundo", nil];
NSArray *listOfKeys = [NSArray arrayWithObjects:@"english", @"french",
@"spanish", nil];
NSDictionary *dictionary2 = [NSDictionary
dictionaryWithObjects:listOfObjects forKeys:listOfKeys];
NSDictionary 构造函数arrayWithObjects:forKeys:需要两个数组作为参数。第一个数组必须包含待存储的对象,第二个数组必须包含与这些对象关联的键。如果使用NSMutableDictionary,那么可以通过相同的构造函数创建字典(NSMutable-Dictionary 是NSDictionary 的子类)。如果后面还要向字典中添加对象,那么还可以通过alloc 与init 来创建NSMutableDictionary 对象。表3-3 完整列出了NSDictionary 与NSMutableDictionary 类的