What is an easy way to break an NSArray with 4000+ objects in it into multiple arrays with 30 objects each?

前端 未结 3 1119
终归单人心
终归单人心 2020-11-30 06:37

What is an easy way to break an NSArray with 4000 objects in it into multiple arrays with 30 objects each?

So right now I have an NSArray *stuff where [stuff count]

3条回答
  •  生来不讨喜
    2020-11-30 07:23

    Off the top of my head, something like (untested):

    NSMutableArray *arrayOfArrays = [NSMutableArray array];
    
    int itemsRemaining = [stuff count];
    int j = 0;
    
    while(itemsRemaining) {
        NSRange range = NSMakeRange(j, MIN(30, itemsRemaining));
        NSArray *subarray = [stuff subarrayWithRange:range];
        [arrayOfArrays addObject:subarray];
        itemsRemaining-=range.length;
        j+=range.length;
    }
    

    The MIN(30, i) takes care of that last array that won't necessarily have 30 items in it.

提交回复
热议问题