iOS, как получить подмассив из массива с помощью subarraywithRange - PullRequest
3 голосов
/ 02 июня 2011

У меня проблема с использованием subArrayWithRange.

По сути, я хочу сделать из массива subArray 50 элементов или менее, например, если mainArray состоит из 70 элементов, я хочу, чтобы sortedArray имел массив изпервые 50 элементов в первом индексе и еще один массив из 20 элементов в последнем индексе sortedArray

Надеюсь, я понимаю, что я хочу получить.

в любом случае, мой код

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

и проблема, с которой я сталкиваюсь, состоит в том, что я получаю только те же 50 элементов во всем массиве

Пожалуйста, помогите, Pondd

Ответы [ 2 ]

14 голосов
/ 02 июня 2011
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]];
}
0 голосов
/ 05 декабря 2014
            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];
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...