Что просачивается в этом утверждении, используя replaceObjectAtIndex - PullRequest
0 голосов
/ 14 февраля 2010

Приборы сообщают мне, что следующая строка из кода ниже подтекает: Я не могу понять, как исправить эту утечку.

[self.selectedElement.usrAdvancedBuyingPercents replaceObjectAtIndex: selectedRow withObject: [numberFormatter stringFromNumber: процент]];

 - (IBAction) simpleMarginSliderValueChanged:(UISlider *)sender {  

NSDecimalNumber *percentage = (NSDecimalNumber *)[NSDecimalNumber numberWithFloat:[sender value]];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setPositiveFormat:@"#.##"];

[self.selectedElement.usrAdvancedBuyingPercents replaceObjectAtIndex:selectedRow withObject:[numberFormatter stringFromNumber:percentage]];

[numberFormatter release];


}

1 Ответ

1 голос
/ 15 февраля 2010

NSString, которую вы создаете из номера, нигде не освобождается.

Проблема не в показанном коде - он где-то еще берет строку из этого массива, сохраняет ее, а не освобождает ее. Утечки просто показывают, где изначально была выделена утечка памяти, и единственное, что в этой строке выделяет память, это [numberFormatter stringFromNumber:percentage].

Либо так, либо весь массив освобождается неправильно (но тогда все, что создает usrAdvancedBuyingPercents, также показывает, что происходит утечка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...