NSArray le proporciona dos métodos para hacer exactamente lo que quiere: initWithContentsOfFile:
y writeToFile:atomically:
Un ejemplo corto podría tener este aspecto:
//Creating a file path under iOS:
//1) Search for the app's documents directory (copy+paste from Documentation)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//2) Create the full file path by appending the desired file name
NSString *yourArrayFileName = [documentsDirectory stringByAppendingPathComponent:@"example.dat"];
//Load the array
NSMutableArray *yourArray = [[NSMutableArray alloc] initWithContentsOfFile: yourArrayFileName];
if(yourArray == nil)
{
//Array file didn't exist... create a new one
yourArray = [[NSMutableArray alloc] initWithCapacity:10];
//Fill with default values
}
...
//Use the content
...
//Save the array
[yourArray writeToFile:yourArrayFileName atomically:YES];
Gracias! Una pregunta será 'writeToFile:' crear un nuevo archivo con la matriz en la ruta especificada? – Joshua
Sí. Una advertencia: la matriz debe ser una lista de propiedades válida, lo que significa que todos sus contenidos (y sus contenidos, cuando corresponda) también deben ser listas de propiedades. –
Veo, eso debería estar bien. Entonces, cuando cargo la matriz con 'initWithContentsOfFile:' ¿tengo que dar la ruta directamente al archivo y, de ser así, cómo se llamará? – Joshua