我正在使用Xcode 7.1和iOS 9.1 beta。我从Xcode 6.2导入了我的工作代码,我收到一条错误消息,"方法不会覆盖其超类中的任何方法"
它不是最新的swift语法问题。我已经排除了以下条件:
- 语法针对swift 2.0进行了更新:
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?)
- 在Xcode中重写时,xcode本身会建议语法。
- 最重要的是,如果我创建一个新的测试项目并尝试覆盖touchesBegan,我就不会看到这个问题。问题仅出在导入的代码中。
- 我在UIViewController子类中重写了这个方法。
- 同样的问题在Xcode 7 beta 6中也是可重现的
醇>
在我看来,它是导入代码的测试版错误或我的配置有问题。欢迎任何建议。谢谢你的帮助。
答案 0 :(得分:1)
如果您导入了代码,它可能仍在尝试链接到另一个项目。如果您将代码粘贴到TextEdit中然后重新复制它,那将破坏您的代码可能具有的任何链接。
您也可以尝试将Xcode更新到最新版本。
试一下,让我知道它是怎么回事。
答案 1 :(得分:0)
好吧,我们将代码从Xcode 6.2移到Xcode 7.在我的项目中,我们在某个地方有一个SET类。所以,在迁移之后,即使我有正确的swift 2.0语法,我也无法弄清楚为什么我仍然会遇到压倒一切的问题。
我从它的颜色中得到了线索。 swift Set有紫色,Mine custom Set有浅蓝色。
无论如何,我不认为,这是一个常见的问题。但我仍然想发表我的回答
答案 2 :(得分:0)
这些方法似乎不再在UIViewController类中调用,而它们仍在其子视图中。虽然我还没有想出如何直接与我的UIViewController接触,但有几种方法可以满足您的需求。
您可以将视图设置为自定义类并接收/处理您自己的UIView类中收到的触摸,或者 - 如果您需要touchesBegan,例如在任何地方点击时正确解除键盘 - 只需添加UITapGestureRecognizer
在你的UIViewController中,并将其添加到其视图下面所有其他潜在的子视图,如textFields或按钮:view.insertSubview(gestureRecognizer, atIndex: 0)
。或者,使用Storyboard将TapGestureRecognizer拖动到所需的视图,并将其作为动作@IBAction func viewTapped(sender: AnyObject)
连接到您的故事板。
希望它有所帮助...
答案 3 :(得分:0)
要查找的一件事是,您是否以编程方式向视图添加了手势,或者是否在该故事板ViewController中向视图添加了手势。如果该手势具有&#34;在视图中取消触摸&#34;在故事板中选择或者如果您以编程方式将其设置为true,它可以阻止任何&#34;触摸&#34;被调用的覆盖。