首页 > 解决方案 > 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

当值没有正确结转时,它似乎是随机的,但我无法弄清楚它为什么这样做。

谢谢!

标签: swiftnsuserdefaults

解决方案


推荐阅读