当我打开已经在Xcode 6.3.2上有快速类的项目时,它显示错误。我希望你能帮我解决这个问题。谢谢。
答案 0 :(得分:6)
你在这里遇到了一些不同的错误;让我们及时处理它们。
覆盖便利初始化程序
根据Apple的Swift文档:
如果编写与超类便捷初始值设定项匹配的子类初始值设定项,则超类便捷初始化程序永远不能由子类直接调用,具体如上面在类类型的初始化程序委派中所述的规则。因此,您的子类(严格来说)不提供超类初始化程序的覆盖。因此,在提供超类便捷初始化程序的匹配实现时,不要编写override修饰符。
请放弃override
关键字,然后设置。说到套装......
Swift 1.2中触摸方法的升级界面
iphonedev.tv的Paul Solt在Swift 1.2 fixes and breaks a few things: you should be excited!中涵盖了这一点,我建议你阅读整篇文章(更不用说他链接到的发行说明了),但缺点是NSSet已被替换通过本机Set类型。正如他所说:
修复:您需要将您的方法签名(即:整个第一行)更新为以下内容:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
他还注意到Set上没有任何anyObject()方法,因此您必须使用提供的界面解决这个问题。
希望有所帮助!
答案 1 :(得分:2)
override
初始值设定项中不需要convenience
关键字,因为你不能覆盖这样的初始值设定项。
修复:删除override
关键字。
convenience init() {
self.init(frame: CGRectZero)
}
此外,init()
是指定的初始化程序(在STBTableViewIndex中),或者不是。如果是,请将convenience override init()
替换为required init()
,这首先暗示override
。