如何将多个NSArray中的对象添加到一个NSMutableArray中

8
我想将两个NSArray中的对象添加到NSMutableArray中。我对此不太了解。
这是我的代码:
@interface ViewController : UITableViewController
{
    NSArray *animal;
    NSArray *color;
    NSMutableArray *all;
}


@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    animal = [[NSArray alloc]initWithObjects:@"Lion",@"Tiger",@"Dog",@"Cat",@"Sheep",@"Wolf", nil];
    color = [[NSArray alloc]initWithObjects:@"Blue",@"Red",@"Yellow",@"Green",@"Black", nil];

    all = ??? ; //how to add object from animal and color array in all 
}
4个回答

18
你可以使用NSMutableArray类中的addObjectsFromArray:方法。
all = [[NSMutableArray alloc]init];
[all addObjectsFromArray:animal];
[all addObjectsFromArray:color];

初始化中有一个错误,你漏掉了一个'[',你可以使用initWithArray来避免一条指令。 - tkanzakic
1
@duDE:事实上,在回答这个问题的时候,我也被发送到了人工验证。 :) - Aravindhan

4

试试这个:

animal = [[NSArray alloc]initWithObjects:@"Lion",@"Tiger",@"Dog",@"Cat",@"Sheep",@"Wolf", nil];
color = [[NSArray alloc]initWithObjects:@"Blue",@"Red",@"Yellow",@"Green",@"Black", nil];

all = [[NSMutableArray alloc] init];
[all addObjectsFromArray:animal];
[all addObjectsFromArray:color];

我尝试使用相同的代码。在这种情况下,我的应用程序会因为EXC_BAD_ACCESS而崩溃。 - Donal

1
我正在使用这个:

all = @[animal, color];
但您必须将数组“all”从NSMutableArray转换为NSArray

1

all = [[all arrayByAddingObjectsFromArray: animal] mutableCopy];
all = [[all arrayByAddingObjectsFromArray: color] mutableCopy];

这段代码是将数组 animal 和 color 合并到 all 数组中,并且保持 all 数组为可变类型。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接