并非所有NSUserDefault都在应用重新启动时恢复

时间:2017-04-26 10:14:09

标签: ios xamarin xamarin.ios nsuserdefaults

我将2个自定义列表转换​​为json字符串并将其存储为NSUserDefaults。像这样: -

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

如果我在保存它们之后立即尝试检索它们,我会得到保存的值: -

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

但问题是,如果我重新启动应用程序,并尝试在代码的另一部分获取上述值,我只获得以下值: -

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

并且下面的值始终为null: -

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

我不会在应用内的任何位置覆盖这些值。有没有办法解决这个问题?

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

虽然iOS系统本身确实存储了通过“用户默认”和“用户默认”添加的数据。它可能不会立即这样做。我建议添加以下行:

NSUserDefaults.StandardUserDefaults.Synchronise();

将数据存储到标准用户默认值后,运行同步并测试可以提取数据,您应该会发现现在可以正常使用它。