美文网首页
OC语言day08-02NSArray遍历

OC语言day08-02NSArray遍历

作者: liyuhong165 | 来源:发表于2016-07-31 20:34 被阅读38次

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

    相关文章

      网友评论

          本文标题:OC语言day08-02NSArray遍历

          本文链接:https://www.haomeiwen.com/subject/yycxsttx.html