Swift различают Clear (C) и All clear (AC)

Здравствуйте, я новичок, и я строю калькулятор RPN. все мои операции выполняются в отдельном контроллере представления под названием calcengine. У меня есть код для AC, и у меня есть два вопроса:

 @IBAction func AllClear(sender: UIButton) {
    userHasStartedTyping = false
    labelDisplay.text = "\(0)"
    self.calcEngine!.operandStack.removeAll()  
}

Вот код для расчетов в viewcontroller:

@IBAction func operation(sender: UIButton) {
    let operation = sender.currentTitle!
    if userHasStartedTyping { 
        Enter()  
    }
    self.displayValue = (self.calcEngine?.operate(operation))!
    Enter() 
}

и код для расчетов в кальцинге:

class CalculatorEngine: NSObject   
{ 
var operandStack = Array<Double>() //array

func updateStackWithValue(value: Double)
{ self.operandStack.append(value) }

func operate(operation: String) ->Double
{ switch operation

{

case "×":
    if operandStack.count >= 2 {
        return self.operandStack.removeLast() *         self.operandStack.removeLast()
    }


case "÷":
    if operandStack.count >= 2 {
        return self.operandStack.removeFirst() / self.operandStack.removeLast()
    }


case "+":
    if operandStack.count >= 2 {
        return self.operandStack.removeLast() + self.operandStack.removeLast()
    }


case "−":
    if operandStack.count >= 2 {
        return self.operandStack.removeFirst() -      self.operandStack.removeLast()
    }

    default:break
    }
    return 0.0
}
}
  1. Правильно ли этот код, чтобы очистить все вычисления, которые были сделаны.
  2. Как можно отличить эту функцию от функции Clear и создать код для Clear?

1 ответ

Решение

Типичная кнопка "Очистить" на калькуляторе удаляет только введенный пользователем номер. В вашем случае это будет похоже на AllClear(), но без очистки стека RPN:

@IBAction func Clear(sender: UIButton) 
{
    userHasStartedTyping = false
    labelDisplay.text = "\(0)"
}
Другие вопросы по тегам