Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios10中的UserDefaults有时会显示旧值_Ios_Swift_Nsuserdefaults - Fatal编程技术网

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()”返回一个布尔值,该布尔值指示该值是否已保存