美文网首页
迭代器-半成品

迭代器-半成品

作者: iOS_愛OS | 来源:发表于2018-06-13 17:54 被阅读19次

迭代器


iOS 中常用的迭代器

//NSEnumerator 枚举
- (void)enumeratorDemo{
    NSArray *nameArr = @[@"孔子",@"孟子",@"墨子",@"老子",@"鬼谷子"];
    NSEnumerator *enumerator = [nameArr objectEnumerator];
    NSString *item;
    while (item = [enumerator nextObject]) {
        // 对 item 做处理
    }
}
// 块枚举
- (void)enumeratorWithBloc{
    void (^demoBlock)(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) = ^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop){
        NSLog(@"%@",obj);
        NSLog(@"idx = %lu",(unsigned long)idx);
        if ([(NSString *)obj  isEqual: @"墨子"]){
            *stop = YES;
        }
    };
    NSArray *nameArr = @[@"孔子",@"孟子",@"墨子",@"老子",@"鬼谷子"];
    [nameArr enumerateObjectsUsingBlock:demoBlock];
}

//快速枚举
- (void)quickEnumerator{
    NSArray *nameArr = @[@"孔子",@"孟子",@"墨子",@"老子",@"鬼谷子"];
    for (NSString *item in nameArr) {
        //做处理
    }
}

// 内部枚举
- (void)insideEnumerator{
    NSArray *nameArr = @[@"孔子",@"孟子",@"墨子",@"老子",@"鬼谷子"];
    // nameArr 中的每个元素都执行 method 方法
    //[nameArr makeObjectsPerformSelector:method]
    // nameArr 中的每个元素都执行 method 方法,方法参数为 obj
//    [nameArr makeObjectsPerformSelector:method withObject:obj]
}

MarkEnumerator.h
MarkEnumerator+Internal.h
MarkEnumerator.m

.m 中实现 MarkEnumerator.h 和 MarkEnumerator 中声明的所有方法。

[[array reverseObjectEnumerator] allObjects];
其中 [array reverseObjectEnumerator] 得到一个逆序的枚举型
[[array reverseObjectEnumerator] allObjects]; 是得到数组 array 的逆序数组

相关文章

  • 迭代器-半成品

    迭代器 iOS 中常用的迭代器 MarkEnumerator.hMarkEnumerator+Internal.h...

  • 迭代器

    本节实验我们将为大家讲解迭代器,主要介绍 5 种常见迭代器:输入、输出迭代器,前向逆向迭代器,双向迭代器和随机迭代...

  • 迭代器与生成器

    迭代(iteration)与可迭代(iterable) 迭代器 迭代器协议(iterator protocol) ...

  • 10.迭代器与生成器

    一、迭代器 1). 迭代器概述 类比Java中的迭代器,参考迭代器模式https://www.jianshu.co...

  • 9 ES6 迭代器、生成器

    1、Iterator迭代器 ->遵循迭代模式思想实现,分为内部迭代器、外部迭代器,聚焦点:添加迭代接口 (1).迭...

  • C++boolan part3_week4

    1. 迭代器 1.1 迭代器的种类 使用随机访问迭代器的容器:array, vector,deque使用双向迭代器...

  • 迭代器模式

    内部迭代器和外部迭代器 简单地讲,内部迭代器就是类似 forEach 的迭代器,其内部迭代逻辑已经制定好,只要传入...

  • vector erase的用法

    正向迭代器: 反向迭代器:

  • 10 python中的迭代器和生成器

    1 迭代器 遵循了迭代器协议的对象为迭代器,即内部调用iter()方法转化成的对象为成迭代器。 1.1 迭代器的特...

  • 第7章迭代器模式

    第7章迭代器模式 7.1 jQuery中的迭代器 7.2 实现自己的迭代器 7.3 内部迭代和外部迭代 1内部迭代...

网友评论

      本文标题:迭代器-半成品

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