Domanda

Ho questo problema cablata, non posso ottenere il contenuto del file e di avviare la mia NSMutableArray con esso.

Ecco il mio codice:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSLog(@"Does file exist?: %i", [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]]);

NSMutableArray *tempArr;

tempArr = [[NSMutableArray alloc] initWithContentsOfFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]];

Quando si tenta questo, ritorna initWithContentsOfFile (null). Il controllo fila se il file esiste stampe '1' per la console.

Questo è il codice che sto usando per salvare i dati:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];

sto usando più o meno esattamente lo stesso codice in un programma diverso senza problemi.

Davvero bisogno di aiuto qui, forse sto solo cieco per il momento ...

È stato utile?

Soluzione

La documentazione per il metodo initWithContentsOfFile: diciamo di NSArray:

  

Valore di ritorno Un array inizializzato per contenere il contenuto del file   specificato da alinea o nulla se il file   non può essere aperto o il contenuto del   il file non può essere analizzato in un array.   L'oggetto restituito potrebbe essere diverso   che il ricevitore originale.

non comprendono la dichiarazione di length nel frammento di codice, ma sto indovinando che length.text restituisce un oggetto NSString, non un NSArray. Così avresti bisogno di leggere che di ritorno da un file utilizzando initWithContentsOfFile: da NSString, non NSArray.

Altri suggerimenti

Quando si tenta di creare una matrice dai contenuti di un file, il file deve essere in formato plist , e l'elemento più esterno plist deve essere <array> . Se non ha quel formato, l'inizializzazione fallirà e l'array sarà nil.

si sta creando il file scrivendo una NSString in un file, il che significa che si dovrebbe probabilmente essere la lettura in un NSString, non un NSArray.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top