1//字典的创建2NSDictionary *d1 =[NSDictionary dictionary];3//将创建的字典的内容设置为制定的文件的内容4NSString *path =@"";//文件路径5NSDictionary *d2 =[NSDictionary dictionaryWithContentsOfFile:path];6//创建具有一个键值的字典7NSDictionary *d3 = [NSDictionary dictionaryWithObject:@"s"forKey:@"s"];8//创建具有多个键值的字典 键值对必需对应9//值在前 键在后10NSDictionary *d4 = [NSDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",11@"ss",@"1",12nil];1314//利用数组创建字典15NSArray *key = @[@"2",@"3",@"4"];16NSArray *obj = @[@"ss",@"ff",@"gg"];17NSDictionary *d5 =[NSDictionary dictionaryWithObjects:obj forKeys:key];18//便捷方式19//键在前 值在后20NSDictionary *d6 =@{21@"2":@"d",22@"3":@"d"};2324//init初始化25//将初始化的字典内容设置为指定文件内容26NSDictionary *dd =[[NSDictionary alloc]initWithContentsOfFile:path];27//初始化具有多个键-值的字典(利用数组)28NSDictionary *dd1 =[[NSDictionary alloc]initWithObjects:obj forKeys:key];29//初始化具有多个键-值的字典30NSDictionary *dd2 =[[NSDictionary alloc]initWithObjectsAndKeys:31@"ss",@"2",32@"ss",@"1", nil];33343536//字典基本操作37//字典是无序的 键不可以重复 值可以重复38//返回所有键39NSLog(@"%@",[dd2 allKeys]);40//返回所有值41NSLog(@"%@",[dd2 allValues]);42//返回所有值对应的键43NSLog(@"%@",[dd2 allKeysForObject:@"ss"]);44//返回对应键的值 最常见 最重要45NSLog(@"%@",[dd2 objectForKey:@"ss"]);46//键值对47NSLog(@"%zi",dd2.count);484950//不可变字典51//创建52NSMutableDictionary *dic =[NSMutableDictionary dictionary];53//分配空间54NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]initWithCapacity:10];55//创建并赋值56NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"ss",@"2",57@"ss",@"1", nil];58//添加键值对59[dic2 setObject:@"s"forKey:@"sdads"];60//删除所有键值对61[dic2 removeAllObjects];62//删除指定键对应的键值对63[dic2 removeObjectForKey:@"sd"];646566//字典的遍历67//快速遍历68for(idkeyindic2) {69NSLog(@"%@ = %@",key,[dic2 objectForKey:key]);70}71//代码块遍历72[dic2 enumerateKeysAndObjectsUsingBlock:^(idkey,idobj, BOOL *stop) {73NSLog(@"%@ %@",key,obj);74}];75//迭代器遍历76//可以输出键和值77NSEnumerator *en = [dic2 keyEnumerator];//将所有键装入数组78idkey2 =nil;79while(key2 =[en nextObject]) {80NSLog(@"%@ %@",key2,[dic2 objectForKey:key2]);81}82NSEnumerator *en1 = [dic2 objectEnumerator];//将所有值装入数组83//只可以输出值84idobj3 =nil;85while(obj3 =[en1 nextObject]) {86NSLog(@"%@", obj);87}888990//键给空值会异常 值给控制就是结束标志
补充一点:
如果将自定义的类对象封装进字典
可以用setValuesForKeysWithDictionary方法对对象属性进行赋值,但是封装进字典的键一定要和类中的属性名相同,并且数量不能超过类中的属性数量