Пример. У меня есть массив с 15 объектами. Я хочу начать перечисление с заданного индекса. Скажем, начните с индекса 5, а затем индекс выше, индекс ниже, выше, ниже и т. д. Я хочу, чтобы он обернулся.
Таким образом, порядок индексов в моем примере будет таким. 5, 6, 4, 7, 3, 8, 2, 9, 1, 10, 0, 11, 14, 12, 13
Было бы здорово иметь сигнатуру метода, похожую на следующую строку, но я не требую этого, чтобы одобрить ответ:
- (void)enumerateFromIndex:(NSUInteger)index wrapAroundAndGoBothWays:(void (^)(id obj, NSUInteger idx, BOOL *stop))block
Как это может быть сделано? Хотелось бы избежать копирования массива и т.д.
В этом посте мы делаем это без переноса: Перечисление NSArray, начиная с заданного индекса, ища в обоих направлениях (без переноса вокруг)