例子。我有一个包含 15 个对象的数组。我想从给定的索引开始枚举。说从索引 5 开始,然后是上面的索引,下面的索引,上面,下面等等......我不希望它环绕,而是停止并继续朝未探索的方向前进。
所以我的例子中索引的顺序是。
5、6、4、7、3、8、2、9、1、10、0、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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)