2017-02-01 2 views
1

저는 Xcode 8에서 신속한 코드를 사용하고 있습니다. 누군가 나를 도와 주실 수 있습니까? 'string'유형의 표현식 패턴이 'operation'유형의 값과 일치 할 수 없다고합니다. 스위치 조작시에 에러가 발생하고 그 중에 ×가있는 경우가 나타납니다.내 계산기를 실행하려하고 있습니다.

import UIKit 

class ViewController: UIViewController { 
    @IBOutlet weak var display: UILabel! 

    var userIsInTheMiddleOfTyping = false 

    @IBAction func Appenddigit(_ sender: UIButton) { 
     let digit = sender.currentTitle! 
     if userIsInTheMiddleOfTyping { 
      display.text = display.text! + digit 
     } else { 
      display.text = digit 
      userIsInTheMiddleOfTyping = true 
     } 
    } 

    @IBAction func operate(_ sender: UIButton) { 
     _ = sender.currentTitle! 
     if userIsInTheMiddleOfTyping{ 
      enter() 
     } 
     switch Operation() { 
     case "×": 
      if operandStack.count >= 2 { 
       displayValue = operandStack.removeLast() * .operandStack.removeLast() 
       enter() 
      } 
//   case "÷": 
//   case "+": 
//   case "−": 
     default: 
      break 
     } 
    } 

    var operandStack: Array<Double> = [] 
    @IBAction func enter() { 
     userIsInTheMiddleOfTyping = false 
     operandStack.append(displayValue) 
     print("operandStack = \(operandStack)") 
    } 
    var displayValue: Double { 
     get { 
      return NumberFormatter().number(from: display.text!)!.doubleValue 
     } 
     set { 
      display.text = "\(newValue)" 
      userIsInTheMiddleOfTyping = false 
     } 
    } 
} 

답변

1

Operation() 문자열입니다 "x"에 비해 질수 유형 Operation의 새로운 객체를 만드는 것입니다. 내 생각에 당신이 원하는 문자열을 반환합니다 operation라는 함수를 호출하는 것입니다.

3

스위프트 3에서 Operation은 클래스 NSOperation의 새 이름입니다.

Operation()Operation 개체를 생성합니다.

프로그램에 어떤 "작업"이 있더라도 다른 이름으로 바꿔야합니다. 또한 코드가 무엇을해야하는지 설명해야합니다. 그러면 코드를 수정하는 데 도움을받을 수 있습니다. 라인

switch Operation() 

나에게 이해가되지 않는다.

관련 문제