2015-06-15 3 views
-3

Я делаю калькулятор быстрым. Функционирование очень хорошо пока, кроме дисплея, который находится UILabel.Почему ярлык еще добавляет 0 после нажатия кнопки «C»?

Я хочу, чтобы очистить экран, нажав кнопку C, для этого я сделал так внутри clear() я написал history.text ="\0" это вызвано добавить 0 в следующий раз при нажатии новой цифры.

Позвольте мне предположить, что я назначил цифру 1 2 * 4, а нижняя метка отображает историю каждой нажатой кнопки, которая равна 4 * 2 1.

ПРОБЛЕМА при нажатии кнопки C, чтобы очистить 0 STAYS ТАМ И СЛЕДУЮЩИЙ РАЗ APPEND С 0 LIKE 4 * 2 1 0

Скачать Project все файлы https://drive.google.com/file/d/0B8U2LI6a3maPdmhWVjg4OWREdlE/view?usp=sharing

@IBAction func clear() { 
     displayValue = 0 //this is about label on top 
     history.text = "\(0)" //this is about label on bottom 
} 

@IBAction func appendDigit(sender: UIButton) { 
     let digit = sender.currentTitle! 

     displayHistory(digit) 

     if digit == "." { 

      if (display.text!.rangeOfString(".") == nil) { 
       display.text = display.text! + "." 


      } else { 
       //Don't display anything 
      } 
     } 
     else { 
       if userIsInTheMiddleOfTypingANumber { 
        display.text = display.text! + digit 
       } else { 
        display.text = digit 
        userIsInTheMiddleOfTypingANumber = true 
       } 
     } 
    } 


func displayHistory(historyLabel: String) { 
      history.text = historyLabel + history.text! 
    } 
+0

Во-первых, вы должны объяснить, что представляют все поля. Что такое «история»? Что такое 'historyLabel'? Что такое 'displayValue'? Затем попробуйте подумать, как каждый метод влияет на ваши поля. – Sulthan

ответ

0

Просто добавьте это условие в displayHistory() метод:

if history.text == "0" { 
    history.text = historyLabel 
}else { 
    history.text = historyLabel + history.text! 
} 
Смежные вопросы