2010-05-29 32 views
5

Estoy seguro de que esta es una pregunta muy fácil de responder, pero todavía soy nuevo en cocoa. Necesito guardar mis datos de aplicaciones. La aplicación tiene 4 campos de texto y cada campo necesita ser guardado en un archivo. Luego, cuando abre el archivo, necesita saber qué va en qué campo. Estoy realmente atrapado con esto. Además, sé cómo usar el panel de guardar.Guardar archivos en cacao

+0

La pregunta no es clara ... no "cada campo tiene que ser guardado en un archivo" significa 4 archivos o 1 archivo? ¿Y esto es como una aplicación basada en documentos, con diferentes archivos para diferentes conjuntos de datos? – JWWalker

+0

Tiene que haber 1 archivo. – nosedive25

Respuesta

9

Una manera conveniente sería utilizar PLists:

NSDictionary *arr = [NSDictionary dictionaryWithObjectsAndKeys: 
         string1, @"Field1", string2, @"Field2", nil]; 
NSData *data = [NSPropertyListSerialization dataFromPropertyList:arr 
       format:NSPropertyListXMLFormat_v1_0 errorDescription:nil]; 

NSSavePanel *panel = [NSSavePanel savePanel]; 

NSInteger ret = [panel runModal]; 
if (ret == NSFileHandlingPanelOKButton) { 
    [data writeToURL:[panel URL] atomically:YES]; 
} 

Para deserialización:

NSData  *data = [NSData dataWithContentsOfURL:urlOfFile]; 
NSDictionary *dict = [NSPropertyListSerialization propertyListFromData:data 
         mutabilityOption:NSPropertyListImmutable 
         format:nil errorDescription:nil]; 
NSString *string1 = [dict objectForKey:@"Field1"]; 
// ... etc. 
+0

Gracias, pero lo que no estoy seguro de cómo sería recuperar cada dato, entonces – nosedive25

+0

¡Impresionante que funcionará perfectamente! Gracias – nosedive25