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