Вопрос


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

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

Run_clang_static_analyzer.

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


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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top