2012-04-18 9 views
8

Nella mia applicazione ho un NSArray che contiene alcuni dati. Voglio prendere quei dati e inserirli in un NSMutableArray chiamato subArrayData. Sono in grado di inserire i dati dal mio primo array in matrice mutevole, ma quando l'applicazione viene eseguita sto ottenendo:Come assegnare i dati NSArray a NSMutableArray in iphone?

avvertimento: tipi di puntatore incompatibili assegnando a 'NSMutableArray *' da 'NSArray *' per favore aiutatemi su.

segue è il mio codice: file h

#import <UIKit/UIKit.h> 

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

di file .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]]; 


} 

risposta

17

il file .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

l'uomo di ringraziamento è il lavoro –

+1

Questo ha un oggetto extra molto strano in esso - puoi chiamare 'initWithObjects:' su 'NSMutableArray' direttamente, bypassando' initWithArray: '/' arrayWi thObjects: 'catena qui. Vedi la risposta di Justin. – andyvn22

+0

Grazie mille! :) –

9

Basta chiamare uno dei initializers NSMutableArray s', in questo modo:

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

Per i casi in cui ti stai trattando g con una NSArray esistente, è possibile effettuare una mutableCopy: cambiamento

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

È possibile convertire qualsiasi NSArray ad un array NSMutable chiamando il suo metodo -mutableCopy:

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