Как я могу устранить эту утечку памяти? - PullRequest
0 голосов
/ 11 декабря 2010

это мой фрагмент:

- (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 ( Свойство-> Параметры сборки-> Запуск статического анализатора ), это показывает мне утечку на [[NSString alloc] ....

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

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

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

1 Ответ

3 голосов
/ 11 декабря 2010

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

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

...