2010-12-11 6 views
0


это мой сниппет:Как я могу решить эту утечку памяти?

- (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 опцией (> Build Недвижимость-Options-> Выполнить статический анализатор), он показал мне утечки на [[NSString alloc] ....

RUN_CLANG_STATIC_ANALYZER

Включение этого параметра приведет к Xcode, чтобы запустить инструмент статического анализа Clang на квалификационном исходные файлах. В настоящее время этот инструмент поддерживает файлы C и Objective-C. [RUN_CLANG_STATIC_ANALYZER]


Как я могу решить это?

заранее спасибо,
allberto

ответ

3

Right. Вы выделяете объект, который у вас есть (потому что вы вызывали +alloc), но тогда вы его не выпускаете.

Вы можете заменить все экземпляры [[NSString alloc] initWithFormat:...] на [NSString stringWithFormat:...], чтобы устранить утечку.

+0

правый! спасибо, теперь исправлено! – elp

Смежные вопросы