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;
}