【腾讯云代码分析】经典案例分享:空参数 #1192
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中,有一些方法的参数是不能为空的,比如NSString类的initWithString方法、NSMutableArray类addObject方法等,这些方法通常会在方法声明中明确指出参数不能为空。如果向这些方法的参数传递空指针,程序会在运行时异常,导致程序崩溃。
Clang工具的NilArg规则用于检测Objective-C代码中传递了空指针(nil)作为参数(而该方法的参数不能为空)的情况,提前发现可能引发程序崩溃的代码问题。
NilArg属于编译型工具规则,需要在安装有Xcode、且具备项目编译环境的Mac机器上执行,并且需要在分析方案中配置项目的xcodebuild编译命令。
经典案例
代码案例

案例分享
my_str是从函数外部传递进来的指针,可能为空,而且通过73行的判空操作也能推断出my_str可能为空。NSMutableArray类addObject方法不允许传递空指针作为参数,会导致程序异常。
解决方案
在调用NSMutableArray类addObject方法前,先对参数进行判空,确保不是空指针,才允许传递。
规则使用说明
进入页面,点击方案->规则配置 -> 添加规则 ->搜索规则名NilArg->选择规则 ->批量添加规则


联系我们
欢迎访问我们的平台:腾讯云代码分析

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