0

我正在参加 iTunes 大学的课程,名为“使用 Swift 开发 iOS 8 应用程序”。在第三个视频中,我遇到了一个视频中没有出现的问题,即使是相同的代码,如下:

class ViewController: UIViewController{

…

@IBAction func operate(sender: UIButton) {
        if userIsInTheMiddleOfTypingANumber{
            enter()
        }
        if let operation = sender.currentTitle {
            if let result = brain.performOperation(operation) { > ERROR HERE
                displayValue = result
            } else {
                displayValue = 0
            }
        }
    } 
…
}

在阅读了这个错误的许多解释后,我想问题来自这里:

class CalculatorBrain
{

…
func performOperation(symbol: String) {
        if let operation = knownOps[symbol] {            opStack.append(operation)
        }
    }
}

如果你能帮助我,谢谢!

4

1 回答 1

3

performOperation 不返回任何内容,需要返回一个可选类型,以便它可以在你的 if let 语句中使用(检查它是否确实返回了一个值),这就是它可能抱怨的地方。

尝试:

func performOperation(symbol: String) -> Int? {

这意味着它可以返回一个 Int,然后你的 if let 语句应该很高兴。

于 2015-12-31T00:57:29.560 回答