2012-04-18 10 views
8

W mojej aplikacji mam NSArray, który zawiera pewne dane. Chcę wziąć te dane i umieścić je w NSMutableArray o nazwie subArrayData. Jestem w stanie wstawić dane z mojej pierwszej tablicy w zmienny tablicy, ale gdy działa aplikacja otrzymuję:Jak przypisać dane NSArray do NSMutableArray w iphone?

ostrzeżenie: Niezgodne typy wskaźnik przypisanie „NSMutableArray *” z „NSArray *” proszę o pomoc na zewnątrz.

Oto mój kod: .h plików

#import <UIKit/UIKit.h> 

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

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


} 

Odpowiedz

17

zmienić plik .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

dziękuję, że to jest praca –

+1

Ma to bardzo dziwny dodatkowy obiekt - możesz wywołać 'initWithObjects:' na 'NSMutableArray' bezpośrednio, omijając' initWithArray: '/' arrayWi THObjects: 'chain here. Zobacz odpowiedź Justina. – andyvn22

+0

Dziękuję bardzo! :) –

9

Wystarczy zadzwonić jeden z inicjalizatorów NSMutableArray „s, tak jak poniżej:

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

Dla przypadków, gdy jesteś dealem g z istniejącym NSArray można dokonać mutableCopy:

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

można przekonwertować dowolny NSArray do NSMutable tablicy przez wywołanie -mutableCopy metody:

NSArray *someArray = ...; 
NSMutableArray* subArrayData = [someArray mutableCopy]; 
Powiązane problemy