如何在iphone中将NSArray数据分配给NSMutableArray?

如何在iphone中将NSArray数据分配给NSMutableArray?,iphone,objective-c,ios,object,xcode4.2,Iphone,Objective C,Ios,Object,Xcode4.2,在我的应用程序中,我有一个包含一些数据的NSArray。我想获取这些数据并将其放入名为子阵列数据的NSMutableArray中。我可以将第一个数组中的数据插入可变数组,但当应用程序运行时,我得到: 警告:分配给“nsmutablearray*”的指针类型不兼容 来自“nsarray*”的,请帮忙 以下是我的代码: .h文件 只需调用NSMutableArray的一个初始值设定项,如下所示: subArrayData = [[NSMutableArray alloc] initWithObjec

在我的应用程序中,我有一个包含一些数据的NSArray。我想获取这些数据并将其放入名为
子阵列数据的
NSMutableArray
中。我可以将第一个数组中的数据插入可变数组,但当应用程序运行时,我得到:

警告:分配给“nsmutablearray*”的指针类型不兼容 来自“nsarray*”的,请帮忙

以下是我的代码: .h文件


只需调用
NSMutableArray
的一个初始值设定项,如下所示:

subArrayData = [[NSMutableArray alloc] initWithObjects:
                                        @"Select one",
                                        @"Accommodation and travel hospitality",
                                        @"Apartments and villas",
                                        @"Bed and Breakfast",
                                        @"Caravan parks and campsites",
                                        @"Hospitality",
                                        @"Hotels and Motels",
                                        @"Snow and Ski lodges",
                                        @"Tourist attractions and tourism information",
                                        @"Tours and Holidays",
                                        @"Travel agents and Services",
                                        nil]];
对于处理现有
NSArray
的情况,可以制作
mutableCopy

- (id)initWithArray:(NSArray *)array
{
  self = [super init];
  if (nil != self) {
    subArrayData = [array mutableCopy];
    ...
更改.m文件

#import "AddNew.h"
#import "DashBoardPage.h"
#import "SubmitYourListing.h"


@implementation AddNew

@synthesize subArrayData;

-(void)accommodationAndTravel
{
    subArrayData =[[NSMutableArray alloc] initWithArray:[NSArray arrayWithObjects:@"Select one",@"Accommodation and travel hospitality",@"Apartments and villas",@"Bed and Breakfast",@"Caravan parks and campsites",@"Hospitality",
                                                  @"Hotels and Motels",@"Snow and Ski lodges",@"Tourist attractions and tourism information",@"Tours and Holidays",@"Travel agents and Services",nil]];


}

通过调用NSArray的-mutableCopy方法,可以将任何NSArray转换为NSMutable数组:

NSArray *someArray = ...;
NSMutableArray* subArrayData = [someArray mutableCopy];

这里面有一个非常奇怪的额外对象——您可以直接调用
NSMutableArray
上的
initWithObjects:
,绕过
initWithArray:
/
arrayWithObjects:
链。见贾斯汀的答案。
#import "AddNew.h"
#import "DashBoardPage.h"
#import "SubmitYourListing.h"


@implementation AddNew

@synthesize subArrayData;

-(void)accommodationAndTravel
{
    subArrayData =[[NSMutableArray alloc] initWithArray:[NSArray arrayWithObjects:@"Select one",@"Accommodation and travel hospitality",@"Apartments and villas",@"Bed and Breakfast",@"Caravan parks and campsites",@"Hospitality",
                                                  @"Hotels and Motels",@"Snow and Ski lodges",@"Tourist attractions and tourism information",@"Tours and Holidays",@"Travel agents and Services",nil]];


}
NSArray *someArray = ...;
NSMutableArray* subArrayData = [someArray mutableCopy];