IOS 10 中的 UserDefaults 有时显示旧值

UserDefaults in IOS 10 is sometimes showing old value

我正在我的应用程序上测试一些东西,我将当前使用的主题保存为一个字符串:"Light" 与 "Dark"。

我刚刚意识到,在某些时候,当我不断地从浅色切换到深色(读取和写入字符串 UserDefaults)时,我有时会得到旧值:

Light -> Dark -> Light -> Dark -> Light -> Light

我已将日志添加到我读取和写入值的位置并正确执行。这是我测试的方式:

 1. Start app 
 2. Change theme (save string to UserDefaults)
 3. Stop app
 4. Start app (read string from UserDefaults)

我看到其他一些帖子说 IOS 10 中的 UserDefaults 有问题,解决方法是重启设备或 mac。

我明白了,但这是否意味着该问题也会出现在用户设备上? 有没有人遇到过这种问题?有什么解决办法吗?

我正在使用 Xcode 8.2.1 和 IOS 10,Swift 3。我正在我的真实设备上测试,而不是模拟器。

您确定在保存数据后调用 [[NSUserDefaults standardUserDefaults] synchronize]; 吗?