簡體   English   中英

快速發送者覆蓋准備方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM