iOS的遍历,数组,字典等


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

2. 我们常用的for循环遍历

//处理数组//
    NSArray *arrayM = @[@"1",@"2",@"3",@"4"];
    NSInteger arrayMCount = [arrayM count];
    for (int i = 0; i0; i--) {
        NSString *obj = arrayM2[i];
        NSLog(@"%@",obj);
    }


3.  for....in 遍历

//处理数组//
    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);
    }

4、枚举器不常用

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

 

你可能感兴趣的:(iOS,iOS)