swift的函数重载问题

[复制链接]
275 4
代码如下:
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()
}
}
显示如下错误
/Users/svenyip/Desktop/iOS/calculator/calculator/ViewController.swift:54:10:
Method 'performOperation' with Objective-C selector 'performOperation:' conflicts with previous declaration with the same Objective-C selector

各位大神,这是什么原因,参数不是不一样吗,怎么会不行呢

举报 使用道具

回复

4 个评论

RikloamsSmalm  新手上路  发表于 2019-2-3 05:02:39  | 显示全部楼层
代码如下:
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()
        }
    }
显示如下错误
/Users/svenyip/Desktop/iOS/calculator/calculator/ViewController.swift:54:10:
Method 'performOperation' with Objective-C selector 'performOperation:' conflicts with previous declaration with the same Objective-C selector

各位大神,这是什么原因,参数不是不一样吗,怎么会不行呢

举报 使用道具

回复
Pavlinamobally  新手上路  发表于 2019-2-3 05:30:54  | 显示全部楼层
https://segmentfault.com/q/1010000002678029
http://stackoverflow.com/questions/29457720/compiler-error-method-with-objective-c-selector-conflicts-with-previous-declara

上面的链接回答的很详细了,请参照

举报 使用道具

回复
eh000  注册会员  发表于 2019-2-3 08:07:02  | 显示全部楼层
参数都是函数指针,重复了

举报 使用道具

回复
gysf  注册会员  发表于 2019-2-3 09:00:53  | 显示全部楼层
引用 2 楼 wangqingzhu 的回复:
参数都是函数指针,重复了

swift不能够识别不同类型的函数吗,如上,我把其中一个设为private,倒是解决了

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表