OC语言day08-02NSArray遍历

2016-07-31  本文已影响38人  liyuhong165

pragma mark NSArray遍历

pragma mark 概念

/**
 常规遍历       (for循环)
 OC语言遍历     (forin)
 OC迭代器block  (enumerateObjectsUsingBlock)
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类

#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma mark NSArray遍历
    NSArray *arr = @[@"lyh",@"lys",@"lyt"];
    
#warning 1.常规遍历
    for (int i = 0; i < arr.count; ++i)
    {
        NSLog(@"arr[%i] = %@",i,arr[i]);
    }
    
#warning 2.如果是 OC数组 可以使用 OC的增强for循环来遍历 (forin)
    
    // 本质 : 逐个取出 arr中的元素, 将取出的元素 赋值给 obj
    // 注意 : obj 的类型 可以根据数组中 元素的类型来写
    
//    for (NSObject *obj in arr)
    for (NSString *obj in arr)
    {
        NSLog(@"obj = %@",obj);
    }

#warning 3. 使用 OC 数组的迭代器 来遍历 block (enumerateObjectsUsingBlock)
    // 每取出 一个元素 就会调用 一次 block
    // 每次 调用 block 都会将 当前 取出的元素 和 元素对应的索引 传递给我们
    
    // obj 就是当前取出的元素, idx就是 当前元素对应的索引 \
      stop 用于控制什么时候停止遍历
    [arr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        
        if (idx == 1)
        {
            *stop = YES;
        }
        NSLog(@"obj = %@,idx = %lu",obj,idx);
    }];
    return 0;
}

上一篇下一篇

猜你喜欢

热点阅读