【问题标题】:How to make score to be saved even if I reboot iPhone?即使我重新启动 iPhone,如何保存分数?
【发布时间】:2015-07-09 17:37:19
【问题描述】:

我制作了一个应用程序单一应用程序。我放置了一个名为CountUpButton 的按钮,一个名为CountLabel 的标签,以及另一个名为ResetButton 的按钮。 CountUpButton的作用是当按下按钮时,CountLabel必须改变+ 1,当按下ResetButton时,CountLabel必须变为0。但问题是每当我重新启动我的 iPhone 或 App 时,CountLabel 会变回 0。应该保存 CountLabel,所以只有在按下 ResetButton 时才需要更改。

这个函数的代码是:

var CountNumber = 0

@IBAction func ResetButton(sender: UIButton) {
    CountNumber = 0
    CountLabel.text = "0"
}

@IBOutlet var CountLabel: UILabel!

@IBAction func CountUpButton(sender: UIButton) {
    CountNumber += 1
    CountLabel.text = "\(CountNumber)"
}

我用于保存“CountLabel”的代码是:

func saveCounted(){
    let defeaults = NSUserDefaults.standardUserDefaults()
    defeaults.setInteger(CountNumber, forKey: "CountLabel")
}

【问题讨论】:

  • 你在哪里读取保存的用户默认值?
  • 是的,我注意到了,我试图解决这个问题,但我不知道怎么解决,我说的是 forKey: "CountLabel"
  • 在你的 viewDidLoad 中,输入CountNumber = NSUserDefaults.standardDefaults().IntegerForKey("CountLabel") 以使用存储在默认值中的值对其进行初始化。
  • 除了马丁问的,你真的调用了saveCounted函数吗?
  • 是的,我做到了。 override func viewDidLoad() { super.viewDidLoad() // 在加载视图后做任何额外的设置,通常是从一个笔尖。保存计数()}

标签: ios swift


【解决方案1】:
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var counterLabel: UILabel!
    var counter: Int {
        return NSUserDefaults().integerForKey("counter")
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        counterLabel.text = "\(counter)"
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
    @IBAction func countUp(sender: AnyObject) {
        NSUserDefaults().setInteger(counter+1, forKey: "counter")
        counterLabel.text = "\(counter)"

    }
    @IBAction func resetCounter(sender: AnyObject) {
         NSUserDefaults().removeObjectForKey("counter")
        counterLabel.text = "\(counter)"
    }
}

【讨论】:

  • 这不起作用兄弟,使用此代码添加所有计数的 numbesr,因此当加载应用程序时,它会显示添加的所有计数数字,例如:我第一次数 10,第二次数 20,第三次数 20,如果我加载显示 50 的应用程序。它应该显示最后计数的数字。
  • 尝试添加一个重置按钮,你会看到会发生什么
  • 我给你加个重置按钮
  • 兄弟,谢谢我现在给这个答案打分,我对代码做了一点改动,所以现在它可以工作了,谢谢(Y)
猜你喜欢
  • 1970-01-01
  • 2022-11-01
  • 2021-01-09
  • 2019-06-27
  • 2016-02-10
  • 1970-01-01
  • 2012-04-04
  • 2021-09-16
  • 1970-01-01
相关资源
最近更新 更多