2010-08-13 28 views
10

Próbuję odczytać plik wejściowy (jeśli istnieje), a następnie chcę dodać ciąg do tego wejścia. Mój kod wygląda następująco.jak dodać obiekt do NSMutableArray

NSMutableArray *listData = [[NSMutableArray alloc] initWithContentsOfFile:*filepath*]; 
// listData = null if the input file does not exist. 
NSString *jobName = [NSString stringWithFormat:@"My New Job"]; 
[listData addObject:jobName]; 

jeśli wejście istnieje, to po addObject: JobName The listData jest aktualizowana, ale jeśli plik wejściowy nie istnieć listData wciąż daje zerowy po addObject: JobName. Mój plik wejściowy (jeśli istnieje) wygląda mniej więcej tak.

<array> 
     <string>My Job 1</string> 
     <string>My Job 2</string> 
     <string>My Job 3</string> 
</array> 

chcę dodać ciąg w istniejącej tablicy ciągów lub chcesz utworzyć nową tablicę strun JobName jeśli nie jest już tam. Czy ktoś może mi pomóc? Którą metodę powinienem użyć, aby utworzyć nową tablicę ciągów, gdy plik wejściowy nie istnieje.

Odpowiedz

21

jedną z kilku możliwości:

if (!listData) listData = [[NSMutableArray alloc] init]; 
[listData addObject:jobName]; 
4

Od the documentation:

- (id)initWithContentsOfFile:(NSString *)aPath

Tablica zainicjowany zawierać zawartość pliku podanego przez aPath lub nil jeśli plik może” t zostać otwarte lub zawartość pliku nie może zostać sparsowana do tablicy. Zwrócony obiekt może być inny niż oryginalny odbiornik.

Więc jeśli plik nie istnieje, trzeba ręcznie utworzyć tablicę używając:

listData = [[NSMutableArray alloc] init]; 
+0

Dziękuję bardzo Dave Delong. Pomogło mi to. – UCU110

1

Możesz dodać obiekt w NSMutableArray pomocą dwóch metod

  1. addObject
  2. insertObject: atIndex

1. stosując addObject

[myMutableArray addObject:myObject]; 

2.Using inserObject: atIndex

[myMutableArray insertObject:myObject atIndex:index]; 

Uwaga: wartość indeksu musi być ważny (w zasięgu)

Powiązane problemy