ios10中的UserDefaults有时会显示旧值
我正在我的应用程序上测试一些东西,我将当前使用的主题保存为字符串:“亮”与“暗” 我刚刚意识到,在某个时刻,当我不断地从明暗切换(将字符串读写到ios10中的UserDefaults有时会显示旧值,ios,swift,nsuserdefaults,Ios,Swift,Nsuserdefaults,我正在我的应用程序上测试一些东西,我将当前使用的主题保存为字符串:“亮”与“暗” 我刚刚意识到,在某个时刻,当我不断地从明暗切换(将字符串读写到UserDefaults)时,我有时会使用旧值: Light -> Dark -> Light -> Dark -> Light -> Light 我已经将日志添加到我读写值的地方,并正确地执行它。我就是这样测试的: 1. Start app 2. Change theme (save string to UserD
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]代码>保存数据后?您确定要调用[[NSUserDefaults standardUserDefaults]synchronize]代码>保存数据后?您确定该值会将自身写入userdefalts吗?我是说,你可以试试同步。他们不建议这样做,但对我来说,它似乎没有那么快地将值写入磁盘。你能给我们看一段代码吗?我做了更多的测试,我刚刚意识到,在项目保存后快速重新启动时,会出现此问题。如果我暂停两秒钟,似乎我没有这个问题。那么我的解决方案是给你的。使用syncronize可立即保存该值。“.synchronise()”返回一个bool,该bool指示该值是否已保存。您确定该值会将自身写入userdefalts吗?我是说,你可以试试同步。他们不建议这样做,但对我来说,它似乎没有那么快地将值写入磁盘。你能给我们看一段代码吗?我做了更多的测试,我刚刚意识到,在项目保存后快速重新启动时,会出现此问题。如果我暂停两秒钟,似乎我没有这个问题。那么我的解决方案是给你的。使用syncronize可立即保存该值。“.Synchronize()”返回一个布尔值,该布尔值指示该值是否已保存