iOS,如何使用subarraywithRange从数组中获取子数组

时间:2011-06-02 05:56:21

标签: iphone nsmutablearray arrays

我在使用subArrayWithRange时遇到问题。

基本上,我想做的是从mainArray制作50个或更少元素的子数组 例如,如果mainArray有70个元素,我希望sortedArray在第一个索引中包含前50个元素的数组,在sortedArray的最后一个索引中包含20个元素的另一个数组

希望我清楚自己想做什么。

无论如何,我的代码是

for (int i=0; i<=ceilLoopCount; i++) {
    [sortedArray insertObject:[testArray subarrayWithRange:NSMakeRange(0,50)] atIndex:i]; 
} 

我遇到的问题是我在所有数组中只得到相同的50个元素

请帮忙, Pondd

2 个答案:

答案 0 :(得分:14)

NSUInteger size = 50;

for (NSUInteger i = 0; i * size < [testArray count]; i++) {
  NSUInteger start = i * size;
  NSRange range = NSMakeRange(start, MIN([testArray count] - start, size));
  [sortedArray addObject:[testArray subarrayWithRange:range]];
}

答案 1 :(得分:0)

            NSMutableArray *arrayOfArrays = [NSMutableArray array];
            int batchSize = 30;

            for(int j = 0; j < [stuff count]; j += batchSize) {

                NSArray *subarray = [stuff subarrayWithRange:NSMakeRange(j, MIN(batchSize, [stuff count] - j))];
                [arrayOfArrays addObject:subarray];
            }