我已经能够在没有太多问题的情况下更新我的XCode 6.3和Swift 1.2的代码,直到我尝试从UIHandler修复我重写的触摸输入函数。我将所有四种触摸功能的签名更新为以下内容:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
super.touchesBegan(touches, withEvent: event)
...
}
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
super.touchesMoved(touches, withEvent: event)
...
}
override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
...
}
override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent) {
...
}
当我去写它们时,XCode的自动完成实际上会建议这些方法/签名,所以我知道XCode可以识别Swift 1.2。但是,当我清理和构建时,对于所有四个函数,我得到“方法不会覆盖其超类中的任何方法”,以及调用这些函数的“超级”版本时的类似错误。
我没有在项目/构建设置中找到任何突出的东西,我尝试清除DerivedData文件夹以及重新启动计算机,但我仍然遇到这些错误。
答案 0 :(得分:3)
所以我打出了与你相同的错误信息,这让我发疯了。我终于弄明白了问题是什么......如果你在网上遵循了同样的教程,它可能也会让你受益。
原来我有一个名为Set.swift的快速文件...它定义了一个名为Set的类。
但是现在在Swift 1.2中,他们引入了他们自己的类Set,所以我的类引起了碰撞和这些错误,无论我使用Set&lt;&gt; (主要是在touchesXXX部分,但在我使用Set的代码中还有另外一个地方,这就是让我了解的地方)。所以我刚进入Set.swift,并将该类重命名为其他东西,然后它们都开始正确编译。
希望有所帮助!
答案 1 :(得分:1)
您是否尝试完全清理项目(CMD + ALT + SHIFT + K)?
我必须这样做才能让它编译。</ p>
答案 2 :(得分:0)
超级函数调用必须在最后:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
\\ Your code
super.touchesBegan(touches, withEvent: event)
}