例.我有一个包含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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。