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); }];