2012-07-15 43 views
0

我試圖將一個數組分成四個元素的單個數組,其中最後一個數組將包含提醒。例如,如果該主數組的長度屬性爲10,則將創建三個子數組 - 兩個由四個元素組成,兩個元素中的一個。將數組劃分爲四個元素的單獨數組加上提醒

我的代碼現在看起來如下:

NSMutableArray *mainMutableArray = [NSMutableArray arrayWithObjects:@"First", @"Second", @"Third", @"Fourth", @"Fifth", @"Sixth", @"Seventh", @"Eighth", nil]; 
NSMutableArray *mutableArrayOfSubarrays = [NSMutableArray array]; 

int length = mainMutableArray.count/4; 
int location = 0; 

for (int i = 0; i < length; i++) 
{ 
    [mutableArrayOfSubarrays addObject:[mainMutableArray subarrayWithRange:NSMakeRange(location, 4)]]; 
    location += 4; 
} 

當然,這隻能當提醒等於0

任何幫助將不勝感激。

+0

那麼結果是你與得到的,什麼是您的實際問題? – 2012-07-15 17:07:43

回答

2

好了,我們開始吧:從length*4

int length = mainMutableArray.count; 

for (int location = 0; location < length; location+=4) 
{ 
    unsigned int Size=length-location; 
    if (Size>4) Size=4; 
    [mutableArrayOfSubarrays addObject:[mainMutableArray subarrayWithRange:NSMakeRange(location, Size)]]; 
} 
0

河套mainMutableArray.count得到數組的剩餘部分。

1

如果使用while循環,可以使病情描述一下你實際上是試圖做:

NSUInteger length = [mainMutableArray count]; 
NSUInteger location = 0; 
// Until the location is less than four away from the end 
while(location <= (length - 4)){ 

    [mutableArrayOfSubarrays addObject:[mainMutableArray subarrayWithRange:NSMakeRange(location, 4)]]; 
    location += 4; 
} 

// Pick up the remainder, if any 
if(location != length){ 
    [mutableArrayOfSubarrays addObject:[mainMutableArray subarrayWithRange:NSMakeRange(location, length-location)]]; 
} 
相關問題