我使用eBook iOS Development Essentials学习iOS开发,还有一个关于Master-Detail界面的部分。我应该在
中更改代码override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
方法。问题是我只有
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
方法。手动将发件人更改为AnyObject不起作用 - 结果为:
Method does not override any method from its superclass
由于该方法没有按预期工作,我想知道它是否与发件人有关。
答案 0 :(得分:2)
您应该覆盖此方法:
func prepare(for segue: UIStoryboardSegue, sender: Any?)
错误:
发生Method不会覆盖其超类
中的任何方法
,因为UIViewController
(超类)没有override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
方法,因此无需覆盖。
方法prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
在Xcode 8 beta 6中更改为prepare(for segue: UIStoryboardSegue, sender: Any?)
。
答案 1 :(得分:0)
UIViewController prepare(for:sender:)
方法的正确签名是
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
如果您正在阅读一本显示
的书override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
这是错的。 (在Swift中,参数具有不同类型的函数被认为是不同的函数。看起来最近发送参数的类型已更改,因此您的教程代码可能有点过时。)
您只需在功能定义中将AnyOject?
更改为Any?
。