2011-06-02 97 views
1

一個或多個陣列我有一個整數數組,我想這個數組分成整數較小的陣列,然後把這些小數組到一個新的數組,洗牌這個新的數組,重新填充原始數組與洗牌整數。結果將是原始數組的混洗版本,但是每個單獨的項目不會被混洗,而是原來的大塊混洗。洗牌在Objective-C

我可以在Java,C#這樣做等,但新的Objective-C,所以任何實例將是有益的。

這裏是我迄今:

NSMutableArray *chunks = [[NSMutableArray alloc] init]; 
for(int x = 0; x < [rawData count]; x += 400){ 
    NSMutableArray *chunk = [[NSMutableArray alloc] init]; 
    for(int y = 0; y < 400; y++){ //chunks of 400 items 
     [chunk addObject:[NSNumber numberWithInt:rawData[x + y]]]; 
    } 
    count ++; 
} 
//shuffle chunks 
int index = 0; 
for(int i = 0; i < [chunks count]; i ++){ 
    for (int y = 0; y < 400; y++) { 
     //how do I put the chunks chunk back into the rawData[index]?? 
    } 
} 

回答

0

這是你在找什麼(請注意,您在您的第二個循環迭代計數至400 ...你必須停止在「chunk.count 「):

for(int i = 0; i < [chunks count]; i ++){ 
    NSMutableArray *chunk = [chunks objectAtIndex:i]; 
    for (int y = 0; y < [chunk count]; y++) { 
    [rawData replaceObjectAtIndex:i*400+y withObject:[chunk objectAtIndex:y]];