2009-04-15 16 views
5

Una vera domanda per principianti. Ho una sottoclasse NSView in cui creo un NSMutableArray contenente NSValues. Quando voglio scrivere la matrice in un file usando writetofile: atomatically: il file viene creato ma non contiene nessuno degli NSValues ​​che contiene l'array mutabile. Qualcuno sa come posso scrivere con successo questo array mutabile in un file?problema di scrittura di un NSMutableArray su file nel cacao

Grazie

risposta

15

NSValues ​​non possono essere salvate in un plist (che è ciò che writeToFile: atomicamente: lo fa). Dai un'occhiata a here per i valori che puoi salvare. (NSNumber è un tipo di NSValue che puoi salvare, ma altri NSValue falliranno.)

Se si desidera salvare l'array con NSValues, è possibile utilizzare archiving anziché writeToFile: atomically :. NSArray e NSValue supportano entrambi l'archiviazione, quindi devi solo convertire la matrice in un archivio e salvarla in un file. (Esso comprenderà le NSValues ​​pure.) Il codice simile a questa:

[NSKeyedArchiver archiveRootObject:myArray toFile:@"myPath"]; 

per caricarlo, basta usare:

NSArray *myArray = [NSKeyedUnarchiver unarchiveObjectWithFile:@"myPath"]; 
+0

Ho usato NSArchiver e NSUnarchiver invece e funziona perfettamente. Grazie –

+3

Prego. Notare che NSKeyed [Un] Archiver è preferito su NS [Un] Archiver al giorno d'oggi. –