Wal*_*ter 1 iphone memory-leaks clang-static-analyzer
我认为这段代码应该没问题,但Static Analyzer不喜欢它.我无法弄清楚为什么,并希望有人能帮助我理解.代码工作正常,分析器结果只是让我烦恼.
Coin *tempCoin = [[Coin alloc] initalize];
self.myCoin = tempCoin;
[tempCoin release];
Run Code Online (Sandbox Code Playgroud)
Coin是一种通用的NSObject,它有一个初始化的方法.myCoin是当前视图的属性,属于类型Coin.我假设它告诉我,我正在泄漏tempCoin.
在我看来.h我将myCoin设置为非原子的属性,保留.
我试图自动发布代码以及这个正常版本,但静态分析器继续说:
1.方法返回一个带有+1保留计数的Objective-C对象(拥有引用)
2.第97行分配的对象不再在此点之后引用并且保留计数为+1(对象泄露)
第97行是我展示的第一行.
因为静态分析仪正在寻找init,而不是initialize.它看到后者并假设[Coin alloc]返回的对象返回一个不同的对象initialize,从而泄漏第一个对象.
将方法的名称更改为init,静态分析器将不再报告泄漏.
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |