enumerateObjectsWithOptions 和for 循环

如果在for in 循环里面,对数组进行修改,无论是增删改 都会扔出一个异常。
如果时for循环的话就没有问题

for in实际上是快速枚举,enumerateObjectsWithOptions

//使用方法。

    [arr enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSLog(@"idx=%ld, id=%@", idx, obj); //当需要结束循环的时候,调用stop,赋予YES
        if (idx ==3) {
            *stop = YES;
        }
    }];

同理 遍历字典的用法

   [dic enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) {
        NSLog(@"value for key %@ is %@ ", key, value);
        if ([@"key2" isEqualToString:key]) {
            *stop = YES;
        }
    }];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容