2017-03-28 6 views
0

私はここでかなり簡単な質問があると信じていますが、Swiftの経験が不足しているため、答えを見つけることができませんでした。スイフト2と3の違いは?別のクラス内のすべてのクラスのメソッドにどのように?

マイコントローラ:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet private weak var display: UILabel! 

    private var userIsInTheMIddleOfTyping = false 

    private var brain = CalculatorBrain() 

    private var displayValue: Double { 

    get { 

     return Double(display.text!)! 

    } 

    set { 

     display.text = String(newValue) 

    } 

    } 


    @IBAction private func performOperation(_ sender: UIButton) { 

     if userIsInTheMIddleOfTyping{ 

      brain.setOperand(displayValue) 

      userIsInTheMIddleOfTyping = false 

     } 

     if let mathematicalSymbol = sender.currentTitle { 

      brain.performOperation(mathematicalSymbol) 

     } 

     displayValue = brain.result 

     } 

    } 

マイモデル:

import Foundation 

class CalculatorBrain{ 

    private var accumulator = 0.0 

    func setOperand(operand: Double){ 

     accumulator = operand 

    } 

    func performOperation(symbol: String){ 

     switch symbol{ 

      case "π": accumulator = M_PI 

      case "√": accumulator = sqrt(accumulator) 

      default: break 
     } 

    } 

    var result: Double{ 

     get { 

      return accumulator 
     } 

    } 

} 

私はラインでのエラーを取得するいくつかの理由:ここで

は、私が作成した2つのクラスがあるbrain.setOperand(displayValue)

理由は何ですか?

+0

'displayValue'はどこから来たのですか? – Paulw11

+0

申し訳ありません'displayValue'を含むように更新されました –

+0

そして、何がエラーですか? – Paulw11

答えて

1

私はあなたのコードを試してみましたが、すべてが大丈夫だった、二つのことを除外:スウィフト3、最初のパラメータで

brain.setOperand(operand: displayValue) 
brain.performOperation(symbol: mathematicalSymbol) 

は、デフォルトでは外部パラメータを必要としています。

関連する問題