2012-01-10 56 views
-1

假设filteredArray = {0,2,3,4}。我有另一个名为tempArray的数组。我想在tempArray的第零,第二,第三,第四个位置插入1。 此代码段不起作用。任何帮助,将不胜感激。insertObjectAtIndex方法不起作用

NSMutableArray *tempArray =[[NSMutableArray alloc]init]; 
// Assume filteredArray={ 0,2,3,4} 
for (int i=0 ; i<[filteredArray count] ; i++) 
{ 
    [tempArray insertObject:@"1" atIndex:[filteredArray objectAtIndex:i]]; 
} 
+5

insertObject:atIndex:肯定不会工作。在SO上接受0%的答案,另一方面期望对模糊问题有帮助的答复... – 2012-01-10 06:35:13

+0

在这种情况下,您应该使用initWithCapacity初始化tempArray .. – 2012-01-10 06:40:21

+0

首先检查NSlog(@“%d”,[filteredArray count])。 – 2012-01-10 06:41:35

回答

1

要将objet插入到索引处的数组,您必须在数组中有一些ojects(不小于索引)。在不同的话,你不能在索引5到阵列计数对象添加3 这里是解决方案,我的建议是:

for(int i=0;i<[filteredArray count];i++) { 
[if ([[filteredArray objectAtIndex:i] intValue] == i) [tempArray addObject:@"1"]; 
else [tempArray addObject:/*any ampty object*/]; 
}