我想知道如何将NSMutableArray添加到NSMutableArray中,以便先前的数据不会丢失,并且新数据将添加到下一个索引上。
如果您不理解,那么您可以再次向我询问, 我会评估正确的答案。
我的代码如下
-(void)setArray1:(NSMutableArray *)arrayValueFromNew
{
self.myArray=arrayValueFromNew;
myArray2 = [[NSMutableArray alloc] initWithArray:arrayValueFromNew];
for(int i=0;i<[myArray2 count];i++)
{
[myArray addObject:[myArray2 objectAtIndex:i]];
}
}
答案 0 :(得分:0)
NSMutableArray *array1 = [NSMutableArray array], *array2 = [NSMutableArray array];
// add some objects to the arrays
[array1 addObjectsFromArray:array2];
//array1 now contains all the objects originally in array1 and array2
答案 1 :(得分:0)
这将有效,
NSMutableArray *mutarr=[[NSMutableArray alloc]initWithArray: array1]
答案 2 :(得分:0)
在您的代码中,myArray和myArray2都具有相同的对象,因为您将arrayValueFromNew数组分配给两者。所以它没有意义。
但要回答你的问题'如何将一个阵列添加到另一个阵列?'做:
[mutableArray1 addObjectsFromArray:数组2];
编辑:
这是你的方法看起来的样子
-(void)setArray1:(NSMutableArray *)arrayValueFromNew
{
if(!self.myArray)
{
self.myArray = arrayValueFromNew;
}
else
{
[self.myArray addObjectsFromArray:arrayValueFromNew];
}
}
您的'myArray必须初始化。您可以在viewDidLoad或init中初始化它:
self.myArray = [[NSMutableArray alloc] initWithCapacity:1];
答案 3 :(得分:0)
看起来你只想要旧数组的新副本。
有一个方便的功能NSMutableArray *newArray = [oldArray mutableCopy];
请记住,您已经使用了copy来获取此数组,因此您负责管理newArray的内存
修改强>
你的代码在做什么?
-(void)setArray1:(NSMutableArray *)arrayValueFromNew //1
{
self.myArray=arrayValueFromNew; //2
myArray2 = [[NSMutableArray alloc] initWithArray:arrayValueFromNew]; //3
for(int i=0;i<[myArray2 count];i++)
{
[myArray addObject:[myArray2 objectAtIndex:i]]; //4
}
}
array1
arrayValueFromNew
。由于我不知道是否已使用retain
或copy
声明此属性,因此我不知道数组是指向arrayValueFromNew
的指针还是指向{{1}副本的指针}} arrayValueFromNew
arrayValueFromNew
中的每个对象(来自myArray2
的对象。请参阅第3点),将此对象添加到arrayValueFromNew
。假设myArray
是myArray
,它是从NSMutableArray
的对象开始的,您现在又添加了这些对象。它包含arrayValueFromNew
中的每个项目两次。