2010-03-15 13 views
7

Cuando uso NSKeyedArchiver son los datos que se escriben * .plist, he visto algunos ejemplos donde las personas tienen el archivo de salida como * .txt o incluso sin una extensión en absoluto?¿Qué formato guarda NSKeyedArchiver?

-(void)saveCore { 
    NSMutableData *data = [[NSMutableData alloc] init]; 
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; 
    [archiver encodeObject:reactorCore forKey:@"CORE"]; 
    [archiver finishEncoding]; 
    [data writeToFile:[self dataFilePath] atomically:YES]; 

    [data release]; 
    [archiver release]; 
} 

Gary

+0

@JasonCoco No es cierto. Ver respuesta de Ole Begemann. –

+0

@JonaChristopherSahnwaldt Es cierto. Los datos que se generan son datos binarios, y la forma en que está estructurado es completamente propietario. Sí, puede convertir estos datos binarios plist a otra cosa, como un pliego xml, pero no hace que la plist sea menos privada, ni significa que pueda asumir cualquier forma dada. Podría cambiar fácilmente entre versiones si lo quisieran y lo hayan hecho en el pasado. –

+0

@JasonCoco No entiendo a qué te refieres con 'bist plist'. Pensé que querías un formato de archivo binario, y XML no es un formato binario. Y hasta donde yo sé, el formato XML plist no ha cambiado desde su concepción. –

Respuesta

14

Se puede utilizar cualquier extensión de archivo que desea. No tiene ninguna relación con el formato de archivo real que usa NSKeyedArchiver. De forma predeterminada, el archivo estará en formato binario, pero si establece la propiedad outputFormat del archivador en NSPropertyListXMLFormat_v1_0, escribirá un plist XML. Y cuando lo hagas, probablemente deberías darle a tu archivo una extensión .plist o .xml.

+0

Gracias Ole, muy apreciado. – fuzzygoat

+1

Esto es 100% correcto. Tenga en cuenta que si abre un archivo plister binario en TextMate, se convertirá automáticamente en ASCII (con la "¡ADVERTENCIA DE LA LISTA DE PROPIEDAD BINARIA!" En la parte superior) ... lo que podría ser confuso para uno. –

Cuestiones relacionadas