1.基于enumeratekeysandobjectsusingblock的遍历方式
//处理数组//
NSArray *arrayM = @[@"1",@"2",@"3",@"4"];
[arrayM enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%zd--%@",idx,obj);
}];
//处理字典//
NSDictionary *dictM = @{@"1":@"one",@"2":@"two",@"3":@"three"};
[dictM enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"%@:%@",key,obj);
}];
//处理集合//
NSSet * setM = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
[setM enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"%@",obj);
}];
//反向遍历----降序遍历----以数组为例
NSArray *arrayM2 = @[@"1",@"2",@"3",@"4"];
[arrayM2 enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%zd--%@",idx,obj);
}];
//处理数组//
NSArray *arrayM = @[@"1",@"2",@"3",@"4"];
NSInteger arrayMCount = [arrayM count];
for (int i = 0; i0; i--) {
NSString *obj = arrayM2[i];
NSLog(@"%@",obj);
}
//处理数组//
NSArray *arrayM = @[@"1",@"2",@"3",@"4"];
for (id obj in arrayM) {
NSLog(@"%@",obj);
}
//处理字典//
NSDictionary *dictM = @{@"1":@"one",@"2":@"two",@"3":@"three"};
for (id obj in dictM) {
NSLog(@"%@",dictM[obj]);
}
//处理集合//
NSSet * setM = [[NSSet alloc] initWithObjects:@"one",@"two",@"three",@"four", nil];
for (id obj in setM) {
NSLog(@"%@",obj);
}
//反向遍历----降序遍历----以数组为例
NSArray *arrayM2 = @[@"1",@"2",@"3",@"4"];
for (id obj in [arrayM2 reverseObjectEnumerator]) {
NSLog(@"%@",obj);
}
NSArray *array = @[@"张三", @"赵四", @"小宋", @"刘能"];
// 获取数组枚举器:(正序枚举)
NSEnumerator *enumerator = [array objectEnumerator];
id value = nil;
while (value = [enumerator nextObject]) {
NSLog(@"%@", value);
}
// 反向枚举:(逆序)
enumerator = [array reverseObjectEnumerator];
value = nil;
while (value = [enumerator nextObject]) {
NSLog(@"%@", value);
}