【腾讯云代码分析】经典案例分享:空参数 #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
-
规则介绍
在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