|
Me gustaría guardar algunos datos de las preferencias de usuario de mi aplicación sin tener que usar una base de datos. Basicamente sería el nombre de usuario, para que persista entre ejecuciones de la aplicación, pero que en un momento dado el usuario pueda cambiarlo y que se registre ese cambio. ¿Alguna pista de como hacer esto sin base de datos? |
|
Hola Carlos, a bote pronto se me ocurre que lo guardes en un archivo de texto que generes en el sandbox de la app (carpeta documents), o bien uses un archivo plist (lista de propiedades o property list). Los archivos de texto son algo trivial que conocerás de otros lenguajes. El path de la carpeta documents lo puedes encontrar con:
Y el path del archivo completo (por ejemplo foo.plist, en plan gringo):
Los plist son realmente archivos XML que se pueden inicializar desde Xcode o mediante código. Permiten guardar variables sencillas como enteros o cadenas, y colecciones como arrays. Para ello puedes mirarte la clase NSUserDefaults y/o NSPropertyListSerialization, y métodos como:
Estos métodos no son de NSUserDefaults, sino convenience methods de otras clases como NSArray. Te recomiendo el documento "Property List Programming Guide for Cocoa" de Apple. Muchas gracias. Miraré el método de guardarlo como String en un fichero plist.
(24 Nov '10, 09:28)
Carlosb84
|
|
O siempre se puede usar NSUserDefaults (si solo es para pocos datos)
Y para obtener el valor, el método valueForKey: NSUserFDefaults se comporta como un diccionario. Saludos. Edito: Mil perdones pero la respuesta de arriba al final ya decía lo de NSUserDefaults. Si es que no leer hasta el final, es lo que tiene. Saludos y perdón 1
Muchas gracias a ti también, al final he optado por tu solución, ya que unicamente es el nombre de usuario lo que quiero almacenar. Me ha servido de mucho el código. Aquí pongo lo que yo he usado, para recuperar: NSUserDefaults defaults = [NSUserDefaults standardUserDefaults]; NSString aux=[defaults stringForKey:@"usuario"]; y para almacenar: [defaults setValue:@"valor" forKey: @"usuario"]; [defaults synchronize];
(24 Nov '10, 15:20)
Carlosb84
De nada, un placer. Nos vemos por aquí ;)
(24 Nov '10, 21:54)
keyholiano
|