how from array ios plist nsuserdefaults user-experience

ios - from - save array in user defaults swift



¿Cómo establecer valores iniciales para NSUserDefault Keys? (4)

Quiero establecer algunos valores iniciales para mis claves NSUserDefault para que la primera ejecución de la aplicación tenga una configuración inicial razonable. Pensé que me encontré con una forma sencilla de hacer esto en el paquete de aplicaciones .plist, pero ahora no puedo encontrarlo. ¿Algunas ideas?


Si tiene muchos valores por defecto, deje usar la respuesta de ola , de lo contrario, esto es bueno para algunos parámetros.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (![defaults boolForKey:USERDEFAULT_IS_INITIALIZED]) { [defaults setBool:YES forKey:USERDEFAULT_IS_INITIALIZED]; // Set initial values ... [defaults synchronize]; }


Debe utilizar el método registerDefaults de NSUserDefaults . Prepare un archivo plist en su paquete que contenga las preferencias predeterminadas y luego use esa lista para registrar los valores predeterminados.

NSString *defaultPrefsFile = [[NSBundle mainBundle] pathForResource:@"defaultPrefs" ofType:@"plist"]; NSDictionary *defaultPreferences = [NSDictionary dictionaryWithContentsOfFile:defaultPrefsFile]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaultPreferences];

Tienes que ejecutar este código en cada lanzamiento de tu aplicación. Agregará estos valores a un dominio separado en la jerarquía de valores predeterminados del usuario. Cuando los valores predeterminados de usuario de su aplicación no proporcionan un valor para una clave determinada, NSUserDefaults volverá a este dominio y recuperará el valor desde allí.


if ([[[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys] containsObject:@"initialValuesHaveBeenWritten"]) { [[NSUserDefaults standardUserDefaults] setValue:obj1 forKey:key1]; [[NSUserDefaults standardUserDefaults] setValue:obj2 forKey:key2]; [[NSUserDefaults standardUserDefaults] setValue:obj1 forKey:@"initialValuesHaveBeenWritten"]; [[NSUserDefaults standardUserDefaults] synchronize]; }

NB: no probado, hecho de memoria


-(void) loadDef { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; _removeAd=[userDefaults boolForKey:SAVE_AD_STATUS]; NSString* strDefSetting=[userDefaults stringForKey:SAVE_STATUS_ADSETTING]; if(strDefSetting==nil ||[strDefSetting isEqualToString:@""] ) { strDefSetting=@"0.5"; } _floatAdmob=strDefSetting.floatValue;//0.5; }