swift - UserDefaults 未正确保存和递增
问题描述
我正在使用 UserDefaults 保存值以确定何时在我的应用程序中展示插页式广告。
这是用于增加数字的代码:
if((defaults.integer(forKey: PRESENT_INTERSTITIAL_NUMBER) > defaults.integer(forKey: CURRENT_INTERSTITIAL_NUMBER))){
print("1111")
let oldNumber = defaults.integer(forKey: CURRENT_INTERSTITIAL_NUMBER)
let newNumber = oldNumber + 1
defaults.set(newNumber, forKey: CURRENT_INTERSTITIAL_NUMBER)
print("oldNumber \(oldNumber)")
print("newNumber \(newNumber)")
print("INTER NUMBER \(defaults.integer(forKey: CURRENT_INTERSTITIAL_NUMBER))")
print(defaults.integer(forKey: PRESENT_INTERSTITIAL_NUMBER))
}
我声明用户默认值如下let defaults = UserDefaults.standard
我的问题是它并不总是正确地增加值。我已经玩了大约一个小时来尝试解决它。
情况1:
CURRENT_INTERSTITIAL_NUMBER = 0
PRESENT_INTERSTITIAL_NUMBER = 4
...运行递增代码...
CURRENT_INTERSTITIAL_NUMBER = 1
PRESENT_INTERSTITIAL_NUMBER = 4
...运行递增代码...
CURRENT_INTERSTITIAL_NUMBER = 1
PRESENT_INTERSTITIAL_NUMBER = 4
...运行递增代码...
CURRENT_INTERSTITIAL_NUMBER = 1
PRESENT_INTERSTITIAL_NUMBER = 4
...运行递增代码...
CURRENT_INTERSTITIAL_NUMBER = 2
PRESENT_INTERSTITIAL_NUMBER = 4
当值没有正确结转时,它似乎是随机的,但我无法弄清楚它为什么这样做。
谢谢!
解决方案
推荐阅读
- c++ - Qt OpenGLWidget 没有完全释放内存
- javascript - 当单元格内的文本时如何获得表格单元格的正确高度
- python - Python中动态标签的问题
- android - 离子错误:无法安装'cordova-plugin-firebase':错误:呃哦-安装时
- asp.net-core-3.1 - asp-area 标签助手如何与区域路由一起使用?
- .net - 登录身份服务器后无法重定向回角度客户端
- python - 连接到 Fargate 上的端口
- websocket - Rails: Action cable 什么时候取消订阅?
- javascript - 在节点 14.7 客户端 JavaScript 中导入失败
- memory-leaks - JavaParser 3.16.1 使用 LexicalPreservingPrinter.setup 泄漏内存