[英]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中。
didSet
观察器。 integerForKey
和setIntegerForKey
当您将所有这些放在一起时,它可以简化为:
@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.