字典是我们常见的数据类型,在Java中对应的是HashMap
* 字典:又称键值对,通过一个key可以访问他的值 * 分类:NSDictionary不可变字典,NSMutableDictionary可变字典 * 备注:字典的key一般是 字符串,如 @"key" * 备注:字典的值,必须是对象,不能是C语言的基本类型 * 备注:字典中的值也可以是字典,可以多级嵌套 * 备注:字典元素的访问,可以直接通过下标的形式访问 * 注意:字典中的键值对是无序的
//1.不可变字典的创建
NSDictionary *dic = @{@"key1":@"value1",@"key2":@"value2"}; NSDictionary *dic2 = @{@"key1":@"value3",@"key2":@"value4"};
/**
* 2.获取字典中元素的几种方法
*/
id obj = dic[@"key1"];//拿到key1对应的值 NSString *str1 = dic[@"key1"];//或者你知道他的值是NSString类型 NSString *str2 = [dic objectForKey:@"key1"];//通过方法获取key1值
/**
* 3.字典中包含字典
*/
NSDictionary *dic3 = @{@"dic1":dic,@"dic2":dic2}; NSString *str3 = dic3[@"dic1"][@"key1"];//多级字典的获取值得方法
* 4.从数组中拿出字典
* 从网络获取的数据很可能是数组,数组中存的可能是字典
*/
NSArray *arr = @[dic,dic2];//模拟网络数据,可能有很多个 for (NSDictionary *dd in arr)//使用快速枚举解析数组 { NSLog(@"获取的字典是:%@",dd); NSString *str = dd[@"key1"]; NSLog(@"从字典中拿出的字符串是%@",str); }
/**
* 5.字典所有的key和value的获得
* 所有的keys和values构成的是一个数组
*/
NSArray *allKeys = [dic allKeys];//获得字典的所有的键 NSArray *allValues = [dic allValues];//获得字典中所有的值
/**
* 6.可变字典的用法
* NSMutableDictionary主要用于参数拼接
*/
NSMutableDictionary *dic4 = [NSMutableDictionary dictionaryWithCapacity:5];//字典的初始容量为5(不够时会自动给增大) [dic4 setObject:@"杨斌" forKey:@"name"];//向字典中添加键值对 [dic4 setObject:@"男" forKey:@"sex"]; [dic4 setObject:@"1770" forKey:@"phone"]; NSLog(@"字典的内容是 %@",dic4); [dic4 removeObjectForKey:@"name"];//移除 @"name"对应的值@"杨斌" [dic4 removeAllObjects];//移除所有元素
更多OC文章:http://blog.csdn.net/yangbingbinga
原文地址:http://blog.csdn.net/yangbingbinga/article/details/46363591