2016-11-29 41 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]; 
相关问题