How to assign NSArray data to NSMutableArray in iphone?

Nilesh .S. Joshi picture Nilesh .S. Joshi · Apr 18, 2012 · Viewed 19.3k times · Source

In my application I have an NSArray which contains some data. I want to take that data and put it into an NSMutableArray called subArrayData. I am able to insert the data from my first array into the mutable array, but when the application runs I am getting:

warning:Incompatible pointer types assigning to 'nsmutablearray *' from 'nsarray *' please help out.

following is my code: .h file

#import <UIKit/UIKit.h>

@interface AddNew : UIViewController
{
    NSMutableArray *subArrayData;;
}
@property(nonatomic ,retain)NSMutableArray *subArrayData;

.m file

#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]];


}

Answer

Malhar Chudasama picture Malhar Chudasama · Apr 18, 2012

You can convert any NSArray to an NSMutable array by calling its -mutableCopy method:

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