【腾讯云代码分析】经典案例分享:父类方法调用缺失 #1185
xiohuang9
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
规则介绍
在Objective-C中,当您覆盖一个父类的方法时,通常需要确保在子类的实现中调用父类的方法。这样可以确保父类的逻辑得到执行,同时子类可以添加或修改特定的行为。
Clang工具的MissingSuperCall规则用于检测Objective-C代码中未调用父类方法的实例。这个规则主要用于确保在子类中正确地调用父类的方法,特别是在覆盖父类方法时。
MissingSuperCall属于编译型工具规则,需要在安装有Xcode、且具备项目编译环境的Mac机器上执行代码分析,并且在分析方案中配置项目的xcodebuild编译命令。
经典案例
代码案例

问题描述
在子类的 viewDidLoad 方法中,没有调用父类 UIViewController 的 viewDidLoad 方法。这违反了Objective-C的继承规则,因为子类在重写父类的方法时,通常需要调用父类的实现。
解决方案
在子类的 viewDidLoad 方法中添加对父类 viewDidLoad 方法的调用,以确保父类的实现被正确执行。
在修复后的代码中,添加了 [super viewDidLoad]; 来调用父类的 viewDidLoad 方法,这样可以确保父类的实现被正确执行,并且遵循了Objective-C的继承规则。
规则使用说明
添加规则



进入页面,点击方案->规则配置 -> 自定义规则包-> 添加规则 ->搜索规则名MissingSuperCall->选择规则 ->批量添加规则
添加配置命令

方案->规则配置 -> 编译配置,按需求填写相关配置命令。
联系我们
欢迎访问我们的平台:腾讯云代码分析

使用文档:腾讯云代码分析帮助文档
持续为您的代码助力!
扫描可进开源群畅聊技术&答疑解惑
Beta Was this translation helpful? Give feedback.
All reactions