【问题标题】:Integer Counter not adding Swift整数计数器不添加 Swift
【发布时间】:2018-05-14 21:38:28
【问题描述】:

我要做的是计算用户打开特定视图控制器的次数。

  • 用户第一次打开视图时int的初始值为0。
  • 然后我想将 +1 添加到“计数”,然后将该数字保存在用户默认值中。
  • 下次他们打开同一个视图控制器时,会调用用户默认值以将当前次数更新为他们访问此视图控制器的累计次数。
  • 用户打开视图控制器 5 次后,我将显示一个广告。

但是,“int”的声明不允许我不断地添加计数。我必须从 0 开始,并且计数永远不会超过 1。这是我一直在尝试的代码。

这是我对“int”的声明

    var userOpenVC: Int = 0

这是我的代码,如果“计数”不等于 5,则添加 1 并保存在用户默认值中。

    override func viewDidLoad()
{
    super.viewDidLoad()

    UserDefaults.standard.integer(forKey: "count")

    if (userOpenVC != 5)
    {
        userOpenCategory += 1
        UserDefaults.standard.set(userOpenCategory, forKey: "count")
    }

}

override func viewWillAppear(_ animated: Bool) {

    print(userOpenCategory)

    //THIS WORKS
    if (userOpenCategory == 5)
    {
        adShow.open()
    }
}

【问题讨论】:

    标签: ios swift int nsuserdefaults


    【解决方案1】:

    好吧,您实际上从未使用过保存在 UserDefaults 中的值。这将解决它:

    override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    userOpenVC = UserDefaults.standard.integer(forKey: "count")
    if userOpenVC != 5 { ...
    

    【讨论】:

    • 我怀疑您的意图是在每次视图控制器显示与加载时增加值,因此您可能希望将建议的功能移至 viewDidAppear 方法。
    • 非常感谢。如此简单的修复,我不知道我是怎么没有意识到的。我很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多