Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 2和Swift 3之间的区别?如何将一个类的所有方法放在另一个类中?_Ios_Swift_Class_Methods - Fatal编程技术网

Ios Swift 2和Swift 3之间的区别?如何将一个类的所有方法放在另一个类中?

Ios Swift 2和Swift 3之间的区别?如何将一个类的所有方法放在另一个类中?,ios,swift,class,methods,Ios,Swift,Class,Methods,我相信我这里有一个非常简单的问题,但由于我缺乏Swift的经验,我一直无法找到答案 以下是我创建的两个类: 我的控制器: import UIKit class ViewController: UIViewController { @IBOutlet private weak var display: UILabel! private var userIsInTheMIddleOfTyping = false private var brain = Calcula

我相信我这里有一个非常简单的问题,但由于我缺乏Swift的经验,我一直无法找到答案

以下是我创建的两个类:

我的控制器:

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
        }

    }

}
由于某种原因,我在第行中得到一个错误:brain.setOperationDisplayValue


有什么原因吗

我试过你的代码,一切都很好,除了两件事:

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

在Swift 3中,默认情况下第一个参数需要一个外部参数。

displayValue来自何处?对不起!更新为包含“displayValue”以及错误是什么?它说brain.setOperationsDisplayValue应该是brain.setOperations:displayValue,但一旦我这样做,应用程序仍然崩溃。如果应用程序崩溃,请使用准确的错误消息更新您的问题。