Swift error: Initializer for conditional binding must have Optional type, not '()'
Swift error: Initializer for conditional binding must have Optional type, not '()'
我正在学习名为 "Developing iOS 8 Apps with Swift" 的 iTunes 大学课程。在第三个视频中,我遇到了一个视频中没有发生的问题,即使它是相同的代码,如下所示:
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)
}
}
}
如果你能帮助我,谢谢!
performOperation 没有 return 任何东西,需要 return 一个可选类型,以便它可以在你的 if let 语句中使用(检查它是否确实 return a值),这就是它可能抱怨的内容。
尝试:
func performOperation(symbol: String) -> Int? {
这意味着它可以 return 一个 Int,然后你的 if let 语句应该是快乐的。
我正在学习名为 "Developing iOS 8 Apps with Swift" 的 iTunes 大学课程。在第三个视频中,我遇到了一个视频中没有发生的问题,即使它是相同的代码,如下所示:
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)
}
}
}
如果你能帮助我,谢谢!
performOperation 没有 return 任何东西,需要 return 一个可选类型,以便它可以在你的 if let 语句中使用(检查它是否确实 return a值),这就是它可能抱怨的内容。
尝试:
func performOperation(symbol: String) -> Int? {
这意味着它可以 return 一个 Int,然后你的 if let 语句应该是快乐的。