[英]Swift sender for overriden prepare method
我使用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
由於該方法無法按預期工作,因此我想知道它是否與發送者有關。
您應該重寫此方法:
func prepare(for segue: UIStoryboardSegue, sender: Any?)
錯誤:
方法不會覆蓋其超類中的任何方法
之所以會發生,是因為UIViewController
( 超類 )沒有override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
方法,所以沒有要覆蓋的東西。
在Xcode 8 beta 6 prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
方法prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
更改為prepare(for segue: UIStoryboardSegue, sender: Any?)
。
UIViewController prepare(for:sender:)
方法的正確簽名是
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
如果您正在閱讀一本顯示
override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?)
這是不對的。 (在Swift中,參數具有不同類型的函數被認為是不同的函數。似乎sender參數的類型最近已更改,因此您的教程代碼可能有點過時了。)
您應該簡單地更改AnyOject?
到Any?
在函數定義中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.