具有范围的子阵列

Pau*_*lie 0 objective-c ios

我试图将一个对象数组拆分为包含32个对象的较小数组.剩下的就是最后放入阵列.

这是我正在使用的代码

int a = sharedManager.inventoryArray2.count;
float b = a / 33;
int c = ceilf(b);

NSMutableArray *arrayOfArrays = [NSMutableArray array];
int from = 0;
int to = 31;

for (int e = 0; e <= c; e++) {

    if (sharedManager.inventoryArray2.count < to) {

       NSArray *smallArray = [sharedManager.inventoryArray2 subarrayWithRange:NSMakeRange(from, sharedManager.inventoryArray2.count)]; 
        [arrayOfArrays addObject:smallArray];
    }
    else {
       NSArray *smallArray = [sharedManager.inventoryArray2 subarrayWithRange:NSMakeRange(from, to)];
       from = from + (31+1);
       to = from + 31;
       [arrayOfArrays addObject:smallArray];
    } 
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

'NSRangeException', reason: '*** -[NSArray subarrayWithRange:]: range {32, 63} extends beyond bounds [0 .. 83]'   
Run Code Online (Sandbox Code Playgroud)

我不明白,32-63的范围在0-83的范围内.

有什么建议?

谢谢.保罗.

小智 7

NSRange指示从该点开始选择的起始点和条目数.所以它实际上意味着"起点32,从该点选择63项",这将超过您的83个条目(32*+*63)