覆盖 viewSafeAreaInsetsDidChange 需要调用 super 吗?

Posted

技术标签:

【中文标题】覆盖 viewSafeAreaInsetsDidChange 需要调用 super 吗?【英文标题】:overriding viewSafeAreaInsetsDidChange needs super to be called? 【发布时间】:2017-10-05 15:18:20 【问题描述】:

如果我覆盖 UIViewController 的函数 viewSafeAreaInsetsDidChange 是否需要调用 super?

override func viewSafeAreaInsetsDidChange() 
    super.viewSafeAreaInsetsDidChange()
    // do my stuff

我知道,如果您覆盖 func viewWillAppear(_ animated: Bool) 并且您没有在内部调用 super,您的应用程序可能会出现异常行为。事实上,苹果公司说你必须在某个时候打电话给super。我想这里不是这样,这就是我想确认的!

【问题讨论】:

【参考方案1】:

这不是必需的,但通常认为最好的做法是在被覆盖的方法上调用 super,除非有明确的理由不这样做。

如果您决定将来您的视图控制器应该从自定义的UIViewController 子类继承,则无需进行任何代码更改即可在每个子类中运行超类的实现。

【讨论】:

我知道这样做是最好的做法,但是如果您覆盖 func viewWillAppear(_ animated: Bool) 并且您没有在内部调用 super,您的应用程序可能会出现异常行为。事实上,苹果公司说你必须在某个时候打电话给super我想这里不是这样,这就是我想确认的! :)

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

白盒测试法:逻辑覆盖与路径覆盖

代码覆盖率VS测试覆盖率

覆盖率啥意思

软件测试 白盒测试 语句覆盖 判定覆盖

07-白盒测试方法-逻辑覆盖法

代码覆盖率是个啥概念?