Objective-C chunk an array into fixed-size batches
Objective-C
#import <Foundation/Foundation.h>
static NSArray<NSArray *> *ChunkArray(NSArray *items, NSUInteger size) {
NSParameterAssert(size > 0);
NSMutableArray<NSArray *> *chunks = [NSMutableArray array];
for (NSUInteger i = 0; i < items.count; i += size) {
NSUInteger len = MIN(size, items.count - i);
[chunks addObject:[items subarrayWithRange:NSMakeRange(i, len)]];
}
return chunks;
}
int main(void) {
@autoreleasepool {
NSArray *batch = ChunkArray(@[@1, @2, @3, @4, @5], 2);
NSLog(@"%@", batch); // ((1,2),(3,4),(5))
}
return 0;
}