Swift错误:条件绑定的初始化程序必须具有可选类型,而不是'()'

时间:2015-12-31 00:25:26

标签: ios swift itunesu

我正在做iTunes大学的课程,叫做#34;使用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)
        }
    }
}

谢谢你能帮助我!

1 个答案:

答案 0 :(得分:3)

performOperation没有返回任何东西,需要返回一个可选类型,以便它可以在你的if语句中使用(检查它是否确实返回了一个值)以及它可能是什么呻吟。

尝试:

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

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