当前位置: 首页 > 面试题库 >

在Swift 2中重写func错误

宦树
2023-03-14
问题内容

XCode 6中的此代码没有错误,但是在XCode 7(Swift 2)中发生了此错误:

方法不会覆盖其超类中的任何方法

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        /* Called when a touch begins */

}

删除override单词时,发生此错误:

方法’的touchesBegan( ::)
withEvent’与目标C选择’的touchesBegan:withEvent:方法’与方法冲突’的touchesBegan(

:从超类的UIResponder’具有相同的目标C选择withEvent :)’


问题答案:

您遇到了第一个错误,因为许多Cocoa Touch已通过审核以支持Objective-
C泛型,这意味着可以键入数组和集合之类的元素。因此,此方法的签名已更改,并且由于您编写的内容不再与之匹配,因此会出现错误,说明您已将方法标记为,override但实际上与以下任何方法都不匹配超级班。

然后,当您删除override关键字时,您得到的错误是让您知道您使用真正的touched begin方法制作了一个与Objective-
C选择器冲突的方法(与Swift不同,Objective-C不支持method超载)。

最重要的是,在Swift 2中,您的触摸开始覆盖应该看起来像这样。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    // stuff
}

有关Objective-
C泛型对您的Swift代码意味着什么的更多信息,建议您查看使用Swift和Cocoa和Objective-C的预发行版中的“轻量级泛型”部分。截至第33和34页。



 类似资料:
  • 我收到了错误“覆盖错误”,尽管所有库在工作区都可用。以下是包含上述错误的相关代码片段: 错误:'虚拟虚空inet::InetPacketBytesPrinter::printMessage(std::ostream 错误:抽象类类型'inet::InetPacketBytesPrinter'的新表达式无效 控制台:12:46:31****增量构建项目ansainet的配置gcc版本****生成模式

  • 函数柯里化。 参数 名称 类型 默认值 描述 func Function 回调函数。

  • 描述 (Description) 方法sort()对列表的对象进行排序,如果给定则使用compare func 。 语法 (Syntax) 以下是sort()方法的语法 - list.sort([func]) 参数 (Parameters) NA 返回值 (Return Value) 此方法不返回任何值,但它从原始列表更改。 例子 (Example) 以下示例显示了sort()方法的用法。 #!

  • 获取函数 创建函数 更新函数 删除函数 更新函数代码

  • Func是由红帽子公司以Fedora平台统一网络控制器 Func(Fedora Unified Network Controller),目的是为了解决这一系列统一管理监控问题而设计开发的系统管理基础框架。 它是一个能有效的简化我们多服务器系统管理工作的工具,它很容易学习、很容易使用、也很容易被扩展,它功能强大而我们只需要非常非常少的配置和维护。 Func分为master及slave两部分,master为主控端,slave为被控端。

  • 问题内容: 我有以下定义: 我尝试按如下方式调用它,但收到错误消息: 这符合: 问题答案: 该相关转到FAQ中指出,和«别在内存相同的表示»。 要了解原因,让我们剖析两件事: 切片是一个后备存储阵列,外加几个包含切片大小和容量的整数。 在Go中,数组并不是某种意义上的“高级”。相反,它们包含的元素的布局是严格定义的:它们全部包含在内存的相邻区域中,彼此相邻。 这意味着,在切片的支持数组中,元素是类