OC中遍歷字典spa
方法一:code
int main(int argc, const char * argv[]) { @autoreleasepool { //遍歷字典 //新建一個可變字典a NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", @"xianggang", @"four", @"xiaoliu", @"five", nil]; //for循環字典a的全部鍵值對數量(count) for (int i=0; i<a.count; i++) { //先拿出字典a裏面的全部key,賦給循環變量i //而後再用字典a,根據全部的key,找出全部的value,再打印出來 NSString *b = [a objectForKey:[[a allKeys]objectAtIndex:i]]; NSLog(@"%@", b); } } return 0; }
方法二(快速枚舉法):對象
int main(int argc, const char * argv[]) { @autoreleasepool { //遍歷字典(快速枚舉) //新建一個可變字典a NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", @"xianggang", @"four", @"xiaoliu", @"five", nil]; //使用枚舉法,建立一個id類型的變量i在字典a裏面,而後根據key@"i",遍歷出字典a裏面全部的value for (id i in a) { NSLog(@"%@", [a valueForKey:i]); } } return 0; }
方法三(枚舉法):索引
遍歷字典每一個索引處的對象,NSEnumerator用來描述這種迭代運算的方式。
經過objectEnumerator向字典請求枚舉器,若是想從後向前瀏覽集合,可以使用reverseObjectEnumerator方法。在得到枚舉器後,能夠開始一個while循環,每次循環都向這個枚舉器請求它的下一個對象:nextObject。nextObject返回nil值時,循環結束。three
int main(int argc, const char * argv[]) { @autoreleasepool { //遍歷字典(枚舉法) //新建一個可變字典a NSMutableDictionary *a = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"xiaoming", @"one", @"xiaohong", @"two", @"xiaoqiang", @"three", @"xianggang", @"four", @"xiaoliu", @"five", nil]; //建立一個id類型的i id i; //向字典請求一個枚舉器b NSEnumerator *b = [a keyEnumerator]; //得到枚舉器後,能夠開始一個while循環,每次循環都向這個枚舉器請求它的下一個對象:nextObject。nextObject返回nil值時,循環結束。 while (i = [b nextObject]) { NSLog(@"%@", [a objectForKey:i]); } } return 0; }