这是我的片段:
- (id) initWithFrame:(CGRect)frame andConfig:(PGParams*) params
{
for (int i=0; i<[conf.map count]; i++)
[conf.map replaceObjectAtIndex:i withObject:
[[NSString alloc] initWithFormat:@"%@&sito=%@",
[conf.map objectAtIndex:i], [params sito]]];
for (int i=0; i<[conf.orto count]; i++)
[conf.orto replaceObjectAtIndex:i withObject:
[[NSString alloc] initWithFormat:@"%@&sito=%@",
[conf.orto objectAtIndex:i], [params sito]]];
for (int i=0; i<[conf.mix count]; i++)
[conf.mix replaceObjectAtIndex:i withObject:
[[NSString alloc] initWithFormat:@"%@&sito=%@",
[conf.mix objectAtIndex:i], [params sito]]];
}
使用RUN_CLANG_STATIC_ANALYZER
选项( Property-&gt; Build Options-&gt; Run Static Analyzer )编译此代码,它会显示[[NSString alloc] ...
上的泄漏。
RUN_CLANG_STATIC_ANALYZER
激活此设置将使Xcode在合格的源文件上运行Clang静态分析工具。该工具目前支持C和Objective-C文件。 [RUN_CLANG_STATIC_ANALYZER]
我该如何解决?
答案 0 :(得分:3)
右。你正在分配一个你拥有的对象(因为你调用了+alloc
),但是你永远不会释放它。
您可以将[[NSString alloc] initWithFormat:...]
的所有实例替换为[NSString stringWithFormat:...]
以修复泄漏。