【发布时间】:2015-11-26 21:08:07
【问题描述】:
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()
}
}
显示的错误是“Method 'performOperation' with Objective-C selector 'performOperation:' 与先前使用相同 Objective-C 选择器的声明冲突” 此错误显示在第二个函数中。
我想使用两个名称相同但输入类型不同的函数,但 Xcode 显示错误。我该如何纠正错误?
【问题讨论】:
-
要使其正常工作,您需要更改方法签名。不要只传递一个元组,而是单独传递参数。 (这个问题是由于使用 Cocoa/CocoaTouch 时 objc 运行时兼容层造成的)