2009-04-15 15 views
5

Una verdadera pregunta para principiantes. Tengo una subclase NSView en la que creo un NSMutableArray que contiene NSValues. Cuando quiero escribir la matriz en un archivo usando writetofile: atomatically: el archivo se crea pero no contiene ninguno de los NSValues ​​que contiene la matriz mutable. ¿Alguien sabe cómo puedo escribir con éxito esta matriz mutable en un archivo?problema al escribir un NSMutableArray para archivar en cocoa

Gracias

Respuesta

15

NSValues ​​no se pueden guardar en un plist (que es lo WriteToFile: atómicamente: hace). Eche un vistazo a here para conocer los valores que puede guardar. (NSNumber es un tipo de NSValue que puede guardar, pero otros NSValues ​​fallarán.)

Si desea guardar su matriz con NSValues, puede usar archiving en lugar de writeToFile: atómicamente :. NSArray y NSValue admiten el archivado, por lo que solo conviene convertir la matriz en un archivo y guardarla en un archivo. (Incluirá los NSValues ​​también.) El código es como la siguiente:

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

para cargarlo, sólo tiene que utilizar:

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

que utilizan NSArchiver y NSUnarchiver lugar y funciona perfectamente. Gracias –

+3

De nada. Tenga en cuenta que NSKeyed [Un] Archiver es preferible a NS [Un] Archiver en la actualidad. –

Cuestiones relacionadas