黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类
------IOS培训期待与您交流! -------
今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样。
一、NSDirctionary类
1、创建方法
// 字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil]; NSArray *array2 = [NSArray arrayWithObjects:@"lisi",@"liping", nil nil]; //第一个元素:key:@"zhang" value:array1 //第二个元素:key:@"li" value:array2 NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:array1,@"zhang",array2,@"li", nil nil]; NSLog(@"%@",dict);
我们可以看到,NSDirctionary类的创建是基于NSArray的,这里需要注意结尾是:nil
2、添加元素
// 存放一个元素 NSDictionary *dict2 = [NSDictionary dictionaryWithObject:array1 forKey:@"zhang"];
3、获取所有元素的key
// 获取所有的key NSArray *allKeys = [dict allKeys];
4、获取所有元素的value
// 获取所有的value NSArray *allValues = [dict allValues];
5、通过key获取value
// 通过key获取value NSArray *values = [dict objectForKey:@"zhang"];
6、NSDirctionary的快速创建方式和访问方式
// 优化的语法 NSDictionary *dict3 = @{@"zhangsan":array1,@"lisi":array2}; NSLog(@"%@",dict3); NSArray *array4 = dict3[@"zhang"];
二、NSMutableDirctionary类
之前的NSDirctionary类是不可变字典,同样的OC中也有对应的可变字典:NSMutableDirctionary
1、创建可变字典
// 创建一个可变字典,大小为3 NSMutableDictionary *md1 = [[NSMutableDictionary alloc] initWithCapacity:3]; NSArray *array1 = [[NSArray alloc] initWithObjects:@"zhangsan",@"lis", nil nil];
创建一个可变字典,可以指定其大小,当然当容量满的之后,他回自动扩容
2、添加元素
// 添加元素 [md1 setObject:array1 forKey:@"zhang"]; NSMutableDictionary *md2 = [[NSMutableDictionary alloc] initWithCapacity:3]; [md2 addEntriesFromDictionary:md1];
3、删除元素
// 删除元素 [md1 removeObjectForKey:@"zhang"];//以key删除 [md1 removeAllObjects];//删除所有元素 [md1 removeObjectsForKeys:array1];//以value删除
4、遍历字典