并不是所有的NSUserDefaults都在应用重新启动时被恢复

我将2个自定义列表转换​​成一个JSONstring,并将其存储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"); 

而下面的值始终为空: –

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

我不覆盖这些值在应用程序的任何地方。 有没有办法解决这个问题?

任何帮助表示赞赏

虽然本机iOS系统确实存储了通过“userdefaults”添加的数据,但它可能不会立即做到这一点。 我会build议添加以下行:

 NSUserDefaults.StandardUserDefaults.Synchronise(); 

将数据存储到标准用户默认值之后,运行同步并testing您可以提取数据,您应该会发现现在可以正确地为您工作。