如何将一个NSMutableArray复制到另一个?

时间:2011-05-12 14:30:37

标签: iphone objective-c

我有一个具有值firstname和id的nsmutablearray(xmlParseArray),我想只将firstname复制到另一个nsmutablearray(copyArray)。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

假设:您的xmlParseArray包含多个对象,所有对象都具有firstname属性和id属性

NSMutableArray* nameArray = [[xmlParseArray valueForKey: @"firstname"] mutableCopy];

// nameArray is an array you own.
发送到数组时,

-valueForKey:会将消息-valueForKey:发送到其每个元素,并从返回值构造一个新数组。 -mutableCopy确保根据您的问题将结果转换为可变数组。

答案 1 :(得分:1)

NSMutableArray *arr = [NSMutableArray arrayWithObject:[copyArray objectAtIndex:0]];

[arr addObject:[copyArray objectAtIndex:0]];
  [arr addObject:[copyArray objectAtIndex:1]];

答案 2 :(得分:1)

我猜你的意思是第一个数组xmlParseArray包含一个NSDictionary个对象列表,每个对象都附加了对象“firstname”和“id”的对象。实现这一目标的一种方法是:

NSMutableArray *copyArray = [[NSMutableArray alloc] initWithCapacity:[xmlParseArray count]];
for(NSDictionary *dict in xmlParseArray)
    if([dict objectForKey:@"firstname"])
        [copyArray addObject:[dict objectForKey:@"firstname"]];

// ...do whatever with copyArray...
[copyArray release];

答案 3 :(得分:0)

NSMutableArray *newArray = [oldArray mutableCopy];

NSMutableArray *newArray = [NSMutableArray arrayWithArray:oldArray];

请注意,数组中的对象不会被复制,只是数组本身(维护对象的引用)。