繁体   English   中英

将两个@IBAction函数的整数存储到NSUserDefaults Swift中

[英]Store a integer from two @IBAction func into NSUserDefaults Swift

我是Swift的新手,已经坚持了一段时间。 我认为这是由于对语言没有全面的了解,但是任何帮助将不胜感激。

我正在创建一个基本的门禁柜台(用于统计参加活动的人数)

var counterNumber = 0


@IBOutlet weak var counterLabel: UILabel!

一键向上计数

@IBAction func countUp(sender: UIButton) {
    counterNumber += 1
    counterLabel.text = "\(counterNumber)"
    var counterNumberAdd = counterLabel.text
    func saveCounterNumber(number:NSNumber){
        NSUserDefaults.standardUserDefaults().setObject(counterNumberAdd, forKey: "addcounterNumber")
        NSUserDefaults.standardUserDefaults().synchronize()
    }}

还有一个倒数

@IBAction func countDown(sender: UIButton) {
    let countersub: () = counterNumber -= 1
    counterLabel.text = "\(counterNumber)"
    var counterNumberSub = counterLabel.text
    func saveCounterNumber(number:NSNumber){
        NSUserDefaults.standardUserDefaults().setObject(counterNumberSub, forKey: "subcounterNumber")
        NSUserDefaults.standardUserDefaults().synchronize()
    }

}

我试图将计数存储在上面的函数中,但是很难调用数据并创建一个函数来解析两个变量并将其存储在应用程序的NSUserDefaults中。

  1. 您使用的是NSUserDefaults,而不是Core Data。
  2. 您应该在保存counterNumber时保存标签的文本值
  3. 您的IBAction中有一个函数,它很琐碎甚至没有被调用。
  4. 如果您尝试做一个1向上1向下计数器,则不应将它们另存为两个不同的NSUserdefaults值
  5. 无需每次都同步NSUserDefaults
  6. 如果您希望每次数字更新时都更新标签,请使用didSet观察器。
  7. 如果要处理特定类型(即Int),则可以使用NSUserDefault的integerForKeysetIntegerForKey

当您将所有这些放在一起时,它可以简化为:

@IBOutlet weak var numberLabel: UILabel!

var counterNumber: Int = NSUserDefaults.standardUserDefaults().integerForKey("counterNumber") {
    didSet {
        numberLabel.text = "\(self.counterNumber)"
    }
}

override func viewDidLoad() {
    super.viewDidLoad()
    numberLabel.text = "\(self.counterNumber)"
}

@IBAction func downButtonPressed(sender: UIButton) {
    NSUserDefaults.standardUserDefaults().setInteger(--counterNumber, forKey: "counterNumber")
}

@IBAction func upButtonPressed(sender: UIButton) {
    NSUserDefaults.standardUserDefaults().setInteger(++counterNumber, forKey: "counterNumber")
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM