// Copyright (c) 2015年 tongxing. All rights reserved.
int main(int argc, const char * argv[])
{
@autoreleasepool {
#pragma mark---数组的四种遍历
//1.使用for循环通过数组下标进行遍历,
NSDictionary *dic3 = [NSDictionary dictionaryWithObjectsAndKeys:@"tongxing",@"name",@"male",@"sex",@(23),@"age", nil];
NSArray *allKeys = [dic3 allKeys];//先获取所有key值
for (NSInteger i = 0; i<[allKeys count]; i++) {
NSString *obj = [dic3 objectForKey:[allKeys objectAtIndex:i]];/*allKeys objectAtIndex:i是取出装有allKeys的一个,
然后在调用objectForKey来取出这一个key所对应的value值,并赋值给obj*/
NSLog(@"%@",obj);
}
//2.使用快速遍历,
for (id key in dic3) {
NSString *object = [dic3 objectForKey:key];
NSLog(@"%@",object);
}
//上面两种遍历在数组的使用中已经提到
//下面两种遍历是经常会用到的,
//关于block的知识,还是很重要的
//3.//block遍历
NSArray *array =[NSArray arrayWithObjects:@"1",@"2",@"3", nil];
[array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"%lu-%@",idx,obj);
//如果索引为1,就停止遍历
if (idx==[array count]) {
*stop =YES;
}
}];
//4.枚举器遍历
NSArray *array10 = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];
// 获取数组的迭代器
// NSEnumerator *enumerator1 = [array1 objectEnumerator];
// 反序迭代器(从尾部开始遍历元素)
NSEnumerator *enumerator2 = [array10 reverseObjectEnumerator];
// allObjects是取出没有被遍历过的对象
NSArray *array11 = [enumerator2 allObjects];
NSLog(@"array2:%@", array11);
// 获取下一个需要遍历的元素
id obj = nil;
while (obj = [enumerator2 nextObject]) {
NSLog(@"obj=%@", obj);
}
// NSArray *array2 = [enumerator2 allObjects];
// NSLog(@"array2:%@", array2);
//如果放到遍历之后,则取到空,原因是,遍历完了,就没值了
}
}
return 0;
}