2010-02-09 19 views
21

Mi aplicación de iPhone tiene algunas configuraciones que los usuarios pueden cambiar con bastante frecuencia. Me gustaría saber si hay alguna forma sugerida de manejar tales configuraciones (leerlas y guardarlas). En los sitios de Apple solo encontré un tutorial sobre la integración de la configuración de la aplicación con la aplicación de Configuración (link), pero no quiero que un usuario salga de mi aplicación para que simplemente pueda cambiar la opción.Almacenamiento de la configuración de la aplicación de iPhone en la aplicación

¿Existe algún mecanismo predeterminado para manejar estas configuraciones en la aplicación o tengo que implementar una solución por mi cuenta?

Respuesta

43

La mejor y más fácil forma de almacenar configuraciones en el iPhone es a través de NSUserDefaults. Le impide tener que lidiar con el sistema de archivos o listas de distribución o cualquiera de esas otras cosas.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *storedVal = @"This is what you want to save"; 
NSString *key = @"storedVal"; // the key for the data 

[defaults setObject:storedVal forKey:key]; 
[defaults synchronize]; // this method is optional 


// Get the results out 
NSString *results = [defaults stringForKey:key]; 

Esto es lo que Apple dice sobre los tipos de objetos que puede almacenar en los valores predeterminados

Un objeto predeterminado debe ser una lista de propiedades , es decir, una instancia de (o para colecciones una combinación de instancias de): NSData, NSString, NSNumber, NSDate, NSArray o NSDictionary. Si desea almacenar cualquier otro tipo de objeto , normalmente debe archivar para crear una instancia de NSData.

Hay algunas advertencias más, como si almacena un NSDictionary, los valores clave deben ser cadenas.

+2

¿Es posible almacenar los valores de tipos distintos a continuación 'NSString' como números o fechas? – RaYell

+0

yup, actualicé mi respuesta – kubi

+0

Gracias amigo, ese es el tipo de respuesta que quería escuchar. – RaYell

0

Lea el File and Networking Guide desde la conexión de desarrollador de iPhone. Explicará cómo obtiene la ruta para las diferentes ubicaciones predefinidas en el entorno limitado de la aplicación. Recomiendo que use un NSDictionary para almacenar sus preferencias, que pueden guardarse fácilmente en el sistema de archivos y convertirse en un plist.

4

Si usted está buscando un interfaz de usuario para editar la configuración del interior de la aplicación, echa un vistazo a InAppSettingsKit http://www.inappsettingskit.com

Cuestiones relacionadas