【腾讯云代码分析】经典案例分享:返回值内存泄露 #1074
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代码为例,对应代码分析规则:LeakOfReturn——用于检测代码中可能存在的内存泄漏问题。
通过应用规则,开发人员可以在编码阶段就发现潜在的内存泄漏问题,并及时修复,以提高代码的质量和性能。
LeakOfReturn属于编译型工具规则,需要在安装有Xcode、且具备项目编译环境的Mac机器上执行代码分析,并且在分析方案中配置项目的xcodebuild编译命令。
经典案例
问题描述
在方法中进行内存分配并返回该对象时,未遵循Cocoa的内存管理命名规范(即函数名需要以 copy,mutableCopy,alloc,new开头),那么返回的对象可能会导致内存泄漏。
代码案例

案例分析
在createString方法中,分配了一个新的NSString对象str,但是没有遵循Cocoa的内存管理规则。根据Cocoa的内存管理规则,如果一个方法的名称不是以copy、mutableCopy、alloc或new开头,那么它应该返回一个自动释放的对象。在这个例子中,createString方法的名称不符合这些规则,因此它返回的对象可能会导致内存泄漏。
解决方案
为了修复这个问题,我们可以将createString方法的名称更改为以copy、mutableCopy、alloc或new开头,或者在方法内部使用autorelease来确保返回的对象在适当的时候被释放。
更改方法名称
或者使用autorelease
联系我们
欢迎访问我们的平台:腾讯云代码分析

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