2012-04-18 13 views
8

En mi aplicación tengo un NSArray que contiene algunos datos. Quiero tomar esa información y ponerla en un NSMutableArray llamado subArrayData. Soy capaz de insertar los datos de mi primera matriz en la matriz mutable, pero cuando se ejecuta la aplicación que estoy recibiendo:¿Cómo asignar datos de NSArray a NSMutableArray en iphone?

advertencia: los tipos de puntero incompatibles asignar a 'NSMutableArray *' de 'NSArray *' por favor ayuda fuera.

siguiente es mi código: archivo .h

#import <UIKit/UIKit.h> 

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

archivo .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]]; 


} 

Respuesta

17

el archivo .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]]; 


} 
+0

gracias, es el trabajo –

+1

Esto tiene un objeto extra muy extraño en él - puede llamar 'initWithObjects:' en 'NSMutableArray' directamente, sin pasar por' initWithArray: '/' arrayWi thObjects: 'cadena aquí. Ver la respuesta de Justin. – andyvn22

+0

¡Muchas gracias! :) –

9

Sólo tiene que llamar a uno de los inicializadores NSMutableArray 's, así:

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

Para los casos en que está tratando g con un NSArray existente, se puede hacer una mutableCopy: cambio

- (id)initWithArray:(NSArray *)array 
{ 
    self = [super init]; 
    if (nil != self) { 
    subArrayData = [array mutableCopy]; 
    ... 
18

Puede convertir cualquier NSArray a un array NSMutable llamando a su método -mutableCopy:

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