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

Nil*_*shi 9 iphone object objective-c ios xcode4.2

在我的应用程序中,我有一个包含一些数据的NSArray.我想把这些数据放入一个NSMutableArray被调用的数据中subArrayData.我能够将我的第一个数组中的数据插入到可变数组中,但是当应用程序运行时,我得到:

警告:从'nsarray*'分配给'nsmutablearray*'的指针类型不兼容请帮帮忙.

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

#import <UIKit/UIKit.h>

@interface AddNew : UIViewController
{
    NSMutableArray *subArrayData;;
}
@property(nonatomic ,retain)NSMutableArray *subArrayData;
Run Code Online (Sandbox Code Playgroud)

.m文件

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


@implementation AddNew

@synthesize subArrayData;

-(void)accommodationAndTravel
{
    subArrayData =[[NSArray 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]];


}
Run Code Online (Sandbox Code Playgroud)

小智 22

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

NSArray *someArray = ...;
NSMutableArray* subArrayData = [someArray mutableCopy];
Run Code Online (Sandbox Code Playgroud)


Man*_*wal 21

更改.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]];


}
Run Code Online (Sandbox Code Playgroud)


jus*_*tin 9

只需调用其中一个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]];
Run Code Online (Sandbox Code Playgroud)

对于处理现有的情况NSArray,您可以制作mutableCopy:

- (id)initWithArray:(NSArray *)array
{
  self = [super init];
  if (nil != self) {
    subArrayData = [array mutableCopy];
    ...
Run Code Online (Sandbox Code Playgroud)