2016-03-04 5 views
-1

Привет, я начинаю, и я создаю калькулятор RPN. все мои операции выполняются в отдельном диспетчере просмотра, называемом calcengine. У меня есть некоторый код для AC и у меня есть два вопроса:Swift differentiate Clear (C) и All clear (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() 
} 

и код для расчетов в calcengine:

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 и построить код для очистки?
+0

1) Поскольку мы не знаем, как вы выполняете расчеты, мы не можем быть уверены. 2) Код зависит от того, какая разница. Этот вопрос, вероятно, слишком широк. – Abizern

+0

@ Abizern Я только что редактировал вопрос :) если бы вы могли посмотреть .. большое спасибо – kepi

ответ

0

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

@IBAction func Clear(sender: UIButton) 
{ 
    userHasStartedTyping = false 
    labelDisplay.text = "\(0)" 
} 
+0

Спасибо @Alain T. – kepi