miércoles, 23 de abril de 2014

Escribir y leer en Ficheros

Las clases Cocoa permiten almacenar información como por ejemplo, NSString, UIImage y NSData.

Se puede utilizar el método writeToFile: automatically: encoding: error:  de NSString para almacenar su contenido en el sistema de archivos.


Significado de los parámetros:



  • writeToFile, la ubicación del fichero.
  • automatically, valor Boolean si está establecdia YES primero escribe el fichero en un espacio temporal.
  • encoding, el encoding del texto que se va ha almacenar, normalmente UTF8, utilizando la constante NSUTF8StringEncoding.
  • error, puntero a un objeto NSError.

NSString *guardaEsteTexto = @"Este contenido lo almaceno en el fichero";

Bool grabado = [guardaEsteTexto writeToFile:destinationPath automatically:YES 

encoding:NSUTF8StringEncoding error:&errorInfo];


Si se quiere trabajar con URLs encapsularlo en una instancia de NSURL, utilizar el método

writeToURL: automatically: encoding: error: 


La instancia de un NSURL puede apuntar a los recursos (ficheros, directorios, etc) local o remotamente.

También es posible almacenar un NSArray en un fichero.

NSArray *arrayValores = @[@"valor1",@"valor2",@"valor3"];

NSString *ubicacion = [NSTemporaryDirectory() 
stringByAppendingPathComponent:@"nombrefichero.txt"];

if([arrayValores writeToFile:ubicacion automatically:YES]){

 NSArray *recuperarArray = [[NSArray alloc] initWithContentsOfFile:ubicacion];

}

Para almacenar NSArray debe de contener objetos de los siguientes tipos:


  • NSString
  • NSDictionary
  • NSArray
  • NSData
  • NSNumber
  • NSDate

Si se intenta insertar otros tipos de objetos en el array el contenido no será grabada en el directorio, porque el método primero valida que el contenido de objetos es uno de los anteriores.

La clase NSDictionary es muy similar a NSArray para almacenar información.





















No hay comentarios:

Publicar un comentario