你需要调用 super.prepareForSegue: 吗?

Posted

技术标签:

【中文标题】你需要调用 super.prepareForSegue: 吗?【英文标题】:Do you need to call super.prepareForSegue:? 【发布时间】:2021-08-11 11:29:36 【问题描述】:

我正在关注 Apple Books 进行学习。我目前正在使用表格视图和 segues。我得到了这段代码:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    super.prepare(for: segue, sender: sender)
    
    guard segue.identifier == "saveUnwid" else return
    
    let symbol = symbolTextField.text ?? ""
    let name = nameTextField.text ?? ""
    let description = descriptionTextField.text ?? ""
    let usage = usageTextField.text ?? ""
    emoji = Emoji(symbol: symbol, name: name, description: description, usage: usage)

我唯一不明白的是他们为什么打电话给super.prepare(for: segue, sender: sender)

代码包含在 UITableViewController 的一个对象中,segue 会返回一个带有 Emoji 对象列表的表格视图。

【问题讨论】:

这很奇怪。 Apple 文档明确指出“此方法的默认实现不执行任何操作。” - developer.apple.com/documentation/uikit/uiviewcontroller/… 总是调用 super 可能被认为是最佳实践。 【参考方案1】:

在这种情况下我们不需要调用 super,因为这个方法的默认实现(在 super 类中)什么都不做

这个方法的默认实现什么都不做。

https://developer.apple.com/documentation/uikit/uiviewcontroller/1621490-prepare

【讨论】:

以上是关于你需要调用 super.prepareForSegue: 吗?的主要内容,如果未能解决你的问题,请参考以下文章

什么工具可以做FORTRAN调用关系分析?

静态库 动态库 调用

Labview怎么调用Windows API函数?

java调用同一个类中的方法为啥要将方法申明成静态?

java 调用webservice接口的时候 需要先执行一个签到的方法,之后才能调用其他接口方法

java构造方法和方法的区别