ios objective-c nsuserdefaults xcode8 ios10

iOS 10, NSUserDefaults no funciona



objective-c xcode8 (4)

Intento escribir / leer valores en / desde [NSUserDefaults standardUserDefaults] , pero parece que no funciona. Mi código es:

[[NSUserDefaults standardUserDefaults] setObject:@"sampleString" forKey:@"sampleKey"]; [[NSUserDefaults standardUserDefaults] synchronize]; NSString *defaultsValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"sampleKey"]; return defaultsValue;

Este código devuelve nil , para Xcode 8.0 beta y iPhone 6s (10.0) simulador. Sin embargo, devuelve sampleString para Xcode 8.0 beta y iPhone 6s (9.1) simulador

Estoy probando mi aplicación con los nuevos sistemas. ¿Estoy haciendo algo mal? ¿O hay una solución para eso? ¿O es solo un problema "beta"?


Acabo de tener el mismo problema. Parece que hay un problema con NSUserDefaults cuando se ejecuta por primera vez el simulador iOS8 o 9 y luego el simulador iOS10. El reinicio de la Mac solucionó el problema para mí.


Acabo de tener el mismo problema. Parece que hay un problema con NSUserDefaults cuando se ejecuta por primera vez el simulador iOS8 o 9 y luego el simulador iOS10. El reinicio de la Mac solucionó el problema para mí. shareeditflag Confirmado. Cerrar y volver a abrir el simulador no funcionó, pero reiniciarlo me lo arregló.

Según Apple ( enlace de Apple) WWDC Seed: la ejecución de varios simuladores iOS puede hacer que NSUserDefaults no funcione. La ejecución de un simulador iOS 8 o 9 seguido de un simulador iOS 10 hará que NSUserDefaults deje de funcionar en el simulador. Se puede solucionar esto reiniciando el host Mac.


Actualizar:

Si la protección de datos está habilitada, la synchronize también puede fallar cuando una aplicación ingrese el fondo.

Tenemos este problema en un dispositivo real que ejecuta iOS 10.1.1. Se pudo leer el valor anterior, pero el nuevo cambio no se puede guardar en el disco, el método de synchronize siempre falla.

Reinicie el dispositivo puede resolver este problema.


Esto fue un error con el simulador de iOS que se envió con Xcode 8 Beta 1. Se ha corregido en Beta 2:

Resuelto en Xcode 8 beta 2 - IDE

Simulador

  • NSUserDefaults funciona correctamente en el simulador de iOS 10, independientemente de si ha iniciado previamente el simulador de iOS 8 o iOS 9. (25974372)

Notas de lanzamiento de Xcode 8 Beta 2

Actualice a Xcode 8 Beta 2 para evitar tener que reiniciar su Mac host en todo momento.