ios – 枚举NSArray从givven索引开始搜索两种方式(没有环绕)

前端之家收集整理的这篇文章主要介绍了ios – 枚举NSArray从givven索引开始搜索两种方式(没有环绕)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例.我有一个包含15个对象的数组.我想从给定的索引开始枚举.比如从索引5开始,然后是上面的索引,索引在下面,上面,下面……我不希望它环绕,而是停止并继续在未探索的方向.

所以我的例子中的索引顺序是.
5,6,4,7,3,8,2,9,1,10,11,12,13,14

如何才能做到这一点?

解决方法

这是一个更紧凑的实现,不需要创建子数组:
@implementation NSArray (Extensions)

- (void)enumerateFromIndex:(NSUInteger)index goBothWaysUsingBlock:(void (^)(id obj,NSUInteger idx,BOOL *stop))block
{
    BOOL stop = NO;
    for (NSUInteger i = 0; i < self.count && !stop; i++) {
        if (index + i < self.count) {
            block([self objectAtIndex:index + i],index + i,&stop);
        }
        if (i != 0 && !stop && i <= index) {
            block([self objectAtIndex:index - i],index - i,&stop);
        }
    }
}

@end

猜你在找的iOS相关文章