用户默认值看似随机地更改为以前的值 - Swift

时间:2016-08-04 05:16:07

标签: ios swift nsuserdefaults swift3 xcode8

我正在创建一个应用程序,这是一个需要存储高分的游戏。我相信(如果我错了,请纠正我,但是this question看起来就是这样),用户默认是实现此目的的最佳方法。

有时,当我在应用中的视图之间切换时,值会更改为之前的值。然后我将切换回另一个屏幕,他们将回到他们应该的状态。这种情况发生了类似的打击和错过,所以很难说,但我认为它自从应用程序上次关闭后多次设置后发生的最多;但是,我知道至少有时它只会在它们被设置一次之后发生。

我使用了断点来确保代码中的值绝对没有被更改。 (我这样做是通过设置一个断点来设置所有用户默认值,即使值已更改也没有关闭)

处理用户默认值的唯一代码如下:

UserDefaults.standard.set(newHighScore, forKey"highScore")

- >设置用户默认值(其中newHighScore是整数)

let highScore = UserDefaults.standarard.value(forKey: "highScore")

- >要检索值

UserDefaults.standard.synchronize()

- >每次我设置或检索值之前和之后(只是为了安全起见,因为它不起作用,所以我过于谨慎)

This question建议重启我的mac(我做过),然后只在xcode模拟器中进行。我只是这样做,并且在设置值的所有时间都保留断点。

我已经查看了这些问题并且this question看起来很相似,但问题并不适用,因为如果代码没有在游乐场中运行,则决定修复它。我的代码没有在操场上运行。

This question似乎也相似,但它并不适用,因为值返回为null。我只是改变了以前的价值。它也是用objective-c编写的,所以我并没有完全理解他们为修复它所做的工作。我查看了它建议寻求帮助的消息来源,但是没有看到任何帮助我的东西。

提前感谢您对我的问题的任何帮助。我还没有能够找到任何类似的内容,使它看起来像iOS 10或Xcode 8 beta中的错误,但我愿意接受任何使我的代码有效的建议。

0 个答案:

没有答案