iphone - from - swift 4 userdefaults standard
¿Por qué NSUserDefaults no guarda mis valores? (4)
En mi caso, estaba guardando y recuperando una cadena. Cuando sincronicé después de guardar y luego recuperé en otro hilo, no funcionaba correctamente. El problema se resolvió sincronizando ambos después de guardar y antes de volver a arrancar.
Hola, estoy intentando usar NSUserDefaults
para guardar algunos valores predeterminados en la base de datos. Puedo guardar los valores en NSUserDefaults
(incluso lo NSLog
marcado en NSLog
). Ahora necesito los valores en el delegado de la aplicación cuando se reinicia la aplicación. Pero no NSUserDefaults
nada en los NSUserDefaults
. A continuación está mi código de mi clase donde NSUserDefaults
los valores en NSUserDefaults
:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:appDel.dictProfile forKey:@"dict"];
NSLog(@"%@",[prefs valueForKey:@"dict"]);
A continuación está mi código del delegado de la aplicación:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSLog(@"%@",[prefs valueForKey:@"dict"]);
el código anterior siempre me devuelve nulo. ¿Puede alguien por favor ayudarme?
Este código funciona bien para mí.
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:myString forKey:@"Prefs"];
[standardUserDefaults synchronize];
}
No dijo si se está ejecutando en un dispositivo o en el simulador, pero si reinicia la aplicación en el simulador, todas las preferencias se restablecerán entre lanzamientos si se inicia desde Xcode. Las preferencias solo se conservarán si reinicia desde el simulador en sí.
Si finaliza su aplicación presionando el botón de inicio (en el simulador o en el dispositivo), sus NSUserDefaults
se guardarán.
Si finaliza su aplicación presionando "Parar" en Xcode (en el simulador o en el dispositivo), sus NSUserDefaults
podrían ser guardados, pero hay muchas posibilidades de que no lo hagan. NSUserDefaults
persiste cualquier cambio periódicamente, y si finaliza el proceso antes de que se hayan conservado, desaparecerán. Puede forzar el guardado llamando:
[[NSUserDefaults standardUserDefaults] synchronize];
Apéndice:
En iOS4 (esta respuesta se escribió originalmente cuando iOS3 era el lanzamiento público), NSUserDefaults
posible que su NSUserDefaults
no se guarde al presionar el botón de inicio. Llamando manualmente [[NSUserDefaults standardUserDefaults] synchronize]
en applicationDidEnterBackground:
debería asegurarse de que sus NSUserDefaults
se guarden correctamente (esto realmente debería ser un comportamiento incorporado en la IMO).