加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 编译器错误:使用Objective-C选择器的方法与使用相同Ob

发布时间:2020-12-14 06:21:54 所属栏目:百科 来源:网络整理
导读:我开始学习Swift,并一直遵循在斯坦福大学举办的视频讲座。这里是一个链接,如果你有兴趣或它有帮助(虽然它不需要了解我的问题): Developing iOS 8 Apps with Swift – 2. More Xcode and Swift,MVC 在跟随演讲,我得到一个点,(据我所知),我的代码是相同
我开始学习Swift,并一直遵循在斯坦福大学举办的视频讲座。这里是一个链接,如果你有兴趣或它有帮助(虽然它不需要了解我的问题):

Developing iOS 8 Apps with Swift – 2. More Xcode and Swift,MVC

在跟随演讲,我得到一个点,(据我所知),我的代码是相同的视频中的代码,但在我的系统我有一个编译器错误。经过大量的试验和错误后,我已经设法将我的代码减少两个例子,其中一个生成错误,其他或哪个不,但我不知道是什么实际上导致错误或如何解决它。

创建错误的代码是:

import UIKit

class BugViewController: UIViewController
{
    func perform(operation: (Double) -> Double) {
    }

    func perform(operation: (Double,Double) -> Double) {
    }
}

这将创建以下编译器错误:

Method ‘perform’ with Objective-C selector ‘perform: ‘ conflicts with previous declaration with the same Objective-C selector

通过简单地删除UIViewController的子类,代码编译:

import UIKit

class BugViewController
{
    func perform(operation: (Double) -> Double) {
    }

    func perform(operation: (Double,Double) -> Double) {
    }
}

一些其他可能相关或可能不相关的信息:

>我最近升级到Yosemite。
>当我安装Xcode,我结束了一个Beta版本(版本6.3(6D543q)),因为(如果我记得正确)这是我需要在我的版本的操作系统X上运行的版本。

我一半希望这是编译器中的错误,否则这对我没有任何意义。任何帮助非常感谢!

Objective-C不支持方法重载,你必须使用不同的方法名。当你继承UIViewController时,你继承了NSObject并使该类可以互操作到Obj-C。 Swift另一方面确实支持重载,这就是为什么当你删除继承时它工作。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读