我有一个包含28个项目的NSArray(mainArray),我希望将该数组分成7个数组,每个数组包含4个项目。我是否有可能从mainArray中获取前4个项目,将它们添加到subArray,然后获取 NEXT 4项并将它们添加到subArray中,依此类推直到我遍历所有28项?如果有可能,怎么样?
这是我的mainArray:
{item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12, item13, item14, item15, item16, item17, item18, item19, item20, item21, item22, item23, item24, item25, item26, item27, item28}
我需要将其更改为this(groupedArray):
{item1, item2, item3, item4}, {item5, item6, item7, item8}, {item9, item10, item11, item12}, {item13, item14, item15, item16}, {item17, item18, item19, item20}, {item21, item22, item23, item24}, {item25, item26, item27, item28}
这是我尝试过的:
int i; int j;
for (i=0, j=1; i<28; i++, j*=4 ) {
NSArray *smallArray = [mainArray subarrayWithRange:NSMakeRange(0, j)];
[groupedArray addObjectsFromArray:smallArray];
}
谢谢,
DB
答案 0 :(得分:1)
您的某些索引已关闭。你想要这样的东西:
NSArray *mainArray = ... // the full array
NSMutableArray *groupedArray = ... // the new array
for (NSUInteger i = 0; i < mainArray.count; i += 4) {
NSArray *smallArray = [mainArray subarrayWithRange:NSMakeRange(i, 4)];
[groupedArray addObjectsFromArray:smallArray];
}
请注意,如果mainArray
中的元素数不是4的倍数,则此代码会崩溃。