例.我有一个包含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