OC中字典的遍历
OC中字典的遍历有四种:
1、使用forin进行遍历
for (NSString *key in dic) {
NSLog(@"%@",key);
//[dic objectForKey:key];
NSLog(@"%@",dic[key]);
}
2、使用for循环进行遍历
//把字典中的键放到一个数组中,name age score
NSArray *keyArr= [dic allKeys];
//遍历这个数组
for (int i=0; i<keyArr.count; i++) {
NSLog(@"%@",[dic objectForKey:keyArr[i]]);
}
3、使用枚举进行遍历
//用枚举类进行字典遍历
NSEnumerator *en=[dic keyEnumerator];
//如果知道key的类型就用该类型去声明一个指针变量,如果不知道key是什么类型就用id来声明指针变量
NSString *key;
//key=[en nextObject]是把en中的值逐一赋给key,如果全部赋完后,那么key指向就为空,while循环条件不成立,循环体语句不再执行
while (key=[en nextObject]) {
NSLog(@"%@",key);
}
//[dic objectEnumerator]把字典中的值取出来
en=[dic objectEnumerator];
id value;
//[en nextObject]把en中的值逐一赋给value,如果全部赋完后,那么value指向就为空,while循环条件不成立,循环体语句不再执行
while (value=[en nextObject]) {
NSLog(@"%@",value);
}
4、使用块对字典的键值进行遍历
[dic enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"%@ %@",key,obj);
}];

浙公网安备 33010602011771号