You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 14.3.1:viewIsAppearing无法重写父类方法问题求助

解决Xcode提示viewIsAppearing未重写父类方法的问题

问题场景

代码示例:

final class Foo: long chain of derivation leading to UIViewController {
    override func viewIsAppearing(_ animated: Bool) {
        // ...
        super.viewIsAppearing(animated)
    }
}

Xcode 14.3.1提示:viewIsAppearing:该方法未重写任何父类方法,部署目标为iOS 13.0。

解决方案

  • 核对方法签名:确保方法签名完全匹配UIViewController的定义,正确签名为:

    override func viewIsAppearing(_ animated: Bool) {
        super.viewIsAppearing(animated)
        // 你的业务代码
    }
    

    注意参数名_ animated: Bool不能修改,参数类型必须是Bool,方法名拼写完全正确。

  • 检查继承链:确认Foo类的继承链最终指向UIViewController,且中间父类没有将viewIsAppearing(_:)标记为final(标记final的方法无法被重写)。如果中间有自定义父类,确保该父类的viewIsAppearing方法是可被重写的(默认internal权限,同一模块内可重写;跨模块需标记为open)。

  • 清理Xcode缓存:

    1. 按下Command + Shift + K清理构建文件夹
    2. 按下Command + Option + Shift + K清理派生数据
    3. 重启Xcode后重新编译
  • 验证父类方法存在:在Xcode中按住Command键点击super,跳转至父类定义,确认父类(或最终的UIViewController)确实存在viewIsAppearing(_:)方法。如果是第三方库的父类,检查库的版本是否支持iOS 13.0及以上,且正确实现了该方法。


内容的提问来源于stack exchange,提问作者Anton Tropashko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:12:36