Лидирующий ноль в калькуляторе swift2

У меня проблема с нулем в моем простом приложении (калькулятор). При запуске Zero печатается на этикетке, но когда я нажимаю кнопку, например, "1", я вижу "01". Это не выглядит хорошо, поэтому я бы изменил это. Мой код ниже. Может ли кто-нибудь помочь мне в этом?

import UIKit

class ViewController: UIViewController {

var previousValue:Int?


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typicala       nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

//display
@IBOutlet weak var displayLabel: UILabel!

// buttons
@IBAction func buttonPressed(sender: AnyObject) {

   let numb = (sender as! UIButton).tag

    displayLabel.text = "\(displayLabel.text!)\(numb)"

}
//plus    
@IBAction func plusPress(sender: AnyObject) {
    previousValue = Int(displayLabel.text!)
    displayLabel.text = "+"

}
//minus    
@IBAction func minusPress(sender: AnyObject) {
    previousValue = Int(displayLabel.text!)
    displayLabel.text = "-"
}

// count
@IBAction func count(sender: AnyObject) {
    let result = previousValue! + Int(displayLabel.text!)!
    displayLabel.text = "\(result)"

}


@IBAction func clear(sender: AnyObject) {
    displayLabel.text=""
}

}

1 ответ

Решение

Проверьте содержимое displayLabel.text первый. Если это 0затем просто установите displayLabel.text на номер, который был нажат. Кроме того, если вы объявите sender в buttonPressed быть UIButtonтогда вам не нужно разыгрывать это:

@IBAction func buttonPressed(sender: UIButton) {
    let numb = sender.tag

    if displayLabel.text == "0" {
        displayLabel.text = "\(numb)"
    }
    else {
        displayLabel.text = "\(displayLabel.text!)\(numb)"
    }
}
Другие вопросы по тегам