黑马程序员技术交流社区
标题:
遍历NSDictionary的方式
[打印本页]
作者:
Blcak_Horse_Sam
时间:
2015-9-22 16:12
标题:
遍历NSDictionary的方式
//创建多个字典
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"obj1", @"key1",@"obj2", @"key2",nil];
//返回一个数组包含字典中所有的键
NSArray *arr = [dic allKeys];
//返回一个数组包含字典中所有的值
NSArray *obj = [dic allValues];
//返回字典中的记录数
NSUInteger cnt = [dic count];
//返回指定的Key的对象
id obj = [dic objectForKey:@"key1"];
= dic [@"key1"];
//NSEnumerator
//依附于集合类(NSArray,NSSet,NSDictionary),没有用来创建实例的接口。
//NSEnumerator的nextObject方法可以遍历每个集合元素,结束返回nil,通过与while结合使用可遍历集合中所有项。
//对可变数组进行枚举操作时,不能通过添加或删除对象这类方式来改变数组容器。
//为词典中所有的键返回一个NSEnumeraotr对象
NSEnumerator enkey = [dic KeyEnumerator];
//为词典中所有的值返回一个NSEnumeraotr对象
NSEnumerator enobj = [dic objectEnumerator];
//通过枚举快速遍历
id key = [enumerator nextObject];
while (key) {
NSLog(@"%@", [enkey objectForKey:key]);
key = [enkey nextObject];
}
//通过块获取词典中的每一条目,当遍历完成或者指针stop=YES结束处理
[dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSLog(@obj for key %@ is %@”, key, obj);
if ([@“key2” isEqualToString:key]) { *stop = YES; }}
];
//快速遍历
for(id key in dic) {
NSLog(@"key = %@ obj = %@", key, [dic objectForKey:key]);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2