2017-02-01 6 views
1

Im mit Swift-Code auf Xcode 8. Kann mir bitte jemand helfen und den Fehler herausfinden? Es besagt, dass das Ausdrucksmuster vom Typ 'Zeichenfolge' nicht mit Werten vom Typ 'Operation' übereinstimmen kann. der Fehler trat bei der Schalteroperation auf und dann der Fall, der × darin enthielt.Ich versuche, meinen Rechner zu laufen

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 
     } 
    } 
} 

Antwort

1

Operation() wird ein neues Objekt des Typs zu schaffen, die zu Operation"x" verglichen werden kippen die eine Zeichenfolge ist. Was ich denke, dass Sie wollen, ist eine Funktion namens operation aufrufen, die eine Zeichenfolge zurückgeben würde.

3

In Swift 3 ist Operation der neue Name der Klasse NSOperation.

Ihr Ausdruck Operation() erstellt ein Objekt Operation.

Was auch immer "Operation" in Ihrem Programm ist, müssen Sie es in etwas anderes umbenennen. Sie sollten auch erklären, was dieser Code tun soll, damit wir Ihnen bei der Behebung helfen können. Die Linie

switch Operation() 

macht keinen Sinn für mich.

Verwandte Themen