麻烦增加一个计数器多

时间:2015-05-12 01:48:58

标签: ios swift

所以我正在开发一个应用程序,并且每次按下按钮时我都试图让UILabel增加一定量。这就是我所拥有的:

对象:

class NewsArticle: NSObject{
    static var counter: Int = 10
}

标签:

@IBOutlet weak var tokenCounter: UILabel!

按钮:

    @IBAction func tenTokens(sender: AnyObject) {
    var alert = UIAlertController(title: "Do you want to purchase 10 Tokens?", message: "", preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Default, handler: nil))
    alert.addAction(UIAlertAction(title: "Yes!", style:UIAlertActionStyle.Default, handler:{(alert: UIAlertAction!) in self.tokenCounter.text = (++NewsArticle.counter).description}))
    self.presentViewController(alert, animated: true, completion: nil)

    //self.tokenCounter.text = (NewsArticle.counter).description

}

此功能现在只将计数器增加1.每次我尝试更改'(++ NewsArticle.counter)。描述' to'(NewsArticle.counter + 10)。描述'它只是暂时改变IBOutlet的值。如果我单击一个只有++的不同按钮(类似名为oneToken),那么它将更改标签。

示例序列:

标签= 10

点击按钮'十个代币。'

标签= 20

点击按钮' One Token'

标签= 11

点击按钮' Ten Tokens'

标签= 21

2 个答案:

答案 0 :(得分:2)

    @IBAction func tenTokens(sender: AnyObject) {
        var alert = UIAlertController(title: "Do you want to purchase 10 Tokens?", message: "", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Default, handler: nil))
        alert.addAction(UIAlertAction(title: "Yes!", style:UIAlertActionStyle.Default, handler:{(alert: UIAlertAction!) in 
            NewsArticle.counter = NewsArticle.counter + 10
            self.tokenCounter.text = (NewsArticle.counter).description
}))
        self.presentViewController(alert, animated: true, completion: nil)

        //self.tokenCounter.text = (NewsArticle.counter).description

    }

您应该按NewsArticle.counter = NewsArticle.counter + 10

更改值

我只想补充答案:

++运算符将使用一个增加NewArticle变量并返回该值。 +运算符不会增加NewArticle值,只会返回附加值,因此NewArticle变量将保持不变,从而导致问题。

答案 1 :(得分:0)

对文辰黄的回答只是一个微小的改进。

而不是写

NewsArticle = NewsArticle + 10

你可以写

NewsArticle += 10

得到相同的结果。

可能只是风格/品味的问题我想