【发布时间】:2015-08-21 12:20:16
【问题描述】:
我有 2 个名称相同但参数不同的函数。
第一个接受一个函数作为参数,该函数接受 2 个双精度并返回一个。
第二个接受一个函数作为参数,该函数接受 1 个 double 并返回一个。这在 Swift 1.1 中有效,在 Xcode 6.1.1 上测试,但是在 Swift 1.2 中,在 Xcode 6.4(beta)上测试,这不起作用并给我这个错误:
方法 'performOperation' 与 Objective-C 选择器'performOperation:' 与具有相同 Objective-C 选择器的先前声明冲突
我该怎么做才能使它起作用,为什么会这样? 我知道我可以用另一种方法求平方根,但我想知道问题出在哪里。
编辑
@IBAction func operate(sender: UIButton) {
let operation = sender.currentTitle!
if userIsInMiddleOfTypingANumber{
enter()
}
switch operation{
case "×" : performOperation {$0 * $1}
case "÷" : performOperation {$1 / $0}
case "+" : performOperation {$0 + $1}
case "−" : performOperation {$1 - $0}
case "√" : performOperation {sqrt($0)}
default : break
}
}
func performOperation(operation : (Double,Double) -> Double){
if operandStack.count >= 2{
displayValue = operation(operandStack.removeLast(),operandStack.removeLast())
enter()
}
}
func performOperation(operation : Double -> Double) {
if operandStack.count >= 1{
displayValue = operation(operandStack.removeLast())
enter()
}
}
【问题讨论】:
-
发布错误所在的方法和行以帮助人们回答
-
@WillM.够了吗?
标签: swift