2016-11-29 56 views
1

我有NSMutableArray其中100個元素。以混亂的方式將NSMutableArray元素添加到另一個NSMutableArray中

我想加載「20-50」,「10-20」,「60-100」和50-60。單元格到單獨的NSMutableArray和它的索引值到另一個NSMutableArray

有遠離我可以加載20 - 50元件30計數項10 - 20元件後10級計數的物品然後60 - 100項即40計數最後50 - 60項目10計數項加入到一個新NSmutableArray有索引層林值到另一個NSmutableArray

有沒有一種方法,我可以添加項目

NSMutableArray *valueArray; // Value array count is 100. 

NSMutableArray *indexValue; 
NSMutableArray *addValueRangeArray; 
for (int i = 0; i< [ valueArray count ]; i ++) { 

if (i == 20 && i <= 50) 
{ 
[addValueRangeArray addObject:[valueArray objectAtIndex:i]]; 
     [indexValue addObject:i]; 
} 
} 

這裏因爲對於計數循環它不工作啓動0至99個 和物品從0

加入開始我想與範圍添加的項目基地,我得到的對象添加對象也是索引值。

您的意見非常感謝 讓我知道如果不明白的問題。 由於其棘手的一個。

回答

1

您可以使用subarrayWithRange從數組中獲取特定範圍。

if (valueArray.count >= 100) { 
    NSMutableArray *rangeArray = [[NSMutableArray alloc] init]; 
    [rangeArray addObjectsFromArray:[valueArray subarrayWithRange:NSMakeRange(20, 30)]]; 
    //and so on. 
} 

注意:作爲範圍的起點和第二個隨着NSMakeRange通過第一個參數是長度,從而通過對象的數量爲該範圍,所以對於第一範圍20-50它是NSMakeRange(20, 30)。如果你的valueArray沒有那個範圍的對象,它可能會導致你崩潰。

+0

它通過一個又一個 – kiran

+0

@kiran可以添加你得到什麼錯誤後崩潰?並顯示你在另一個嘗試的內容。 –

+0

***由於未捕獲的異常'NSRangeException',原因:'*** - [NSArray subarrayWithRange:]:範圍{54,65}延伸超出範圍[0 .. 65]' – kiran

0

你可以像下面這樣做

NSArray *arr = [NSArray arrayWithObjects:@"Temp1",@"Temp2",@"Temp3",@"Temp4",@"Temp5",@"Temp6",@"Temp7",@"Temp8",@"Temp9",@"Temp10",@"Temp11",@"Temp12",@"Temp13",@"Temp14",@"Temp15",@"Temp16",@"Temp17",@"Temp18", nil]; 


// Here create an array of your ranges through which you want your data 

NSArray *arrIndex = [NSArray arrayWithObjects:[NSValue valueWithRange:NSMakeRange(3,4)],[NSValue valueWithRange:NSMakeRange(0,4)],[NSValue valueWithRange:NSMakeRange(11,7)],[NSValue valueWithRange:NSMakeRange(7,4)], nil]; 


NSMutableArray *arrTemp = [NSMutableArray new]; 
for (int i=0;i<arrIndex.count;i++) { 
     [arrTemp addObject:[arr subarrayWithRange:[arrIndex[i] rangeValue]]]; 
    } 

for (NSArray *arr in arrTemp) { 
    NSLog(@"Arra - %@",arr); 
} 

按你的問題的範圍將是

NSArray *arrIndex = [NSArray arrayWithObjects:[NSValue valueWithRange:NSMakeRange(20,30)],[NSValue valueWithRange:NSMakeRange(10,10)],[NSValue valueWithRange:NSMakeRange(60,40)],[NSValue valueWithRange:NSMakeRange(50,10)], nil]; 
相關問題