2017-04-26 2 views
0

Je convertis deux listes personnalisées en une chaîne JSON et je stocke le NSUserDefaults. Quelque chose comme ceci: -Tous les NSUserDefaults ne sont pas restaurés lors de la relance de l'application

NSUserDefaults.StandardUserDefaults.SetString(JsonConvert.SerializeObject(stationList.Take(50)), "StationList1"); 
NSUserDefaults.StandardUserDefaults.SetString(JsonConvert.SerializeObject(stationList.Skip(50).Take(50)), "StationList2"); 

Si je tente de les récupérer immédiatement après les sauver comme ci-dessous, je reçois les valeurs enregistrées: -

savedStationList1 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList1"); 
    savedStationList2 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList2"); 

Mais la question est de savoir si je redémarre l'application, et essayer pour obtenir les valeurs ci-dessus dans une autre partie du code, je reçois seulement la valeur pour: -

savedStationList2 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList2"); 

et la valeur ci-dessous est toujours nulle: -

savedStationList1 = NSUserDefaults.StandardUserDefaults.StringForKey("StationList1"); 

Je ne remplace pas ces valeurs n'importe où dans l'application. Y a-t-il un moyen de résoudre ce problème?

Toute aide est appréciée

Répondre

0

Bien que le système natif iOS ne stocker des données ajoutées par « userdefaults » il ne peut pas le faire instantanément. Je suggère d'ajouter la ligne suivante:

NSUserDefaults.StandardUserDefaults.Synchronise(); 

Une fois que vous stocker des données aux valeurs par défaut d'utilisateur standard exécuter la synchronisation et le test que vous pouvez extraire les données, vous devriez trouver que cela va maintenant fonctionner correctement pour vous.