¿Cuál es una manera fácil de romper un NSArray con más de 4000 objetos en múltiples matrices con 30 objetos cada uno?

¿Cuál es una manera fácil de dividir un NSArray con 4000 objetos en múltiples matrices con 30 objetos cada uno?

Así que ahora tengo cosas de NSArray * donde [cosas cuentan] = 4133.

Quiero hacer una nueva matriz que contenga matrices de 30 objetos. ¿Cuál es una buena forma de recorrer, dividir * cosas en nuevas matrices de 30 objetos y ubicarlas dentro de una matriz más grande?

Obviamente, la última matriz no tendrá 30 (tendrá el rest), pero necesito manejarla correctamente.

¿Tener sentido? Avíseme si hay una manera eficiente de hacer esto.

Fuera de mi cabeza, algo así como (no probado):

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

El MIN(30, i) se ocupa de la última matriz que no necesariamente tendrá 30 elementos.

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

Convirtió la respuesta de @samvermette a SWIFT 3

  var arrayOfArraySlices = [ArraySlice]() // array of array slices var itemsRemaining = orderArray.count var j = 0 while itemsRemaining > 0 { let range = NSRange(location: j, length: min(20, itemsRemaining)); let arraySlice = orderArray[range.location..