关于ios8斯坦福公开课第二课

时间:2022-07-02 06:15:11

在这个课程中,我们遇到了这样的代码

    @IBAction func oprate(sender: UIButton) {
let opration = sender.currentTitle!
if userIsOnInput {
enter()
}
switch opration {
case "+": performOperation{ $0+$1 } case "−": performOperation{ $1-$0 }
case "×": performOperation{ $0*$1 }
case "÷": performOperation{ $1/$0 }
// case "√": performOperation{ sqrt($0) }
default: break
} }
func performOperation(opretion:(Double,Double) -> Double) {
if operandStack.count >= 2 {
displayValue = opretion(operandStack.removeLast(), operandStack.removeLast())
enter()
}
} /** 并不能闭包参数的重载 */
// func performOperation(opretion: Double -> Double) {
// if operandStack.count >= 1 {
// displayValue = opretion(operandStack.removeLast())
// enter()
// }
// }

视频里运行的各种欢脱,但是我们就是编译不过去。。。  

注释处错误:在stack Overflow中找到了答案:因为swift语言支持重载,但是OC语言不支持重载!

话说,我这里哪里和OC有关?这里明明是swift。。。仔细看看,发现UIViewController是继承自NSObject的。。。

可能是Paul Hegarty使用的XCode版本比较低,所以并没有遇到