使用replaceObjectAtIndex在此语句中泄漏了什么

时间:2010-02-14 20:28:04

标签: iphone nsarray

乐器告诉我下面代码中的以下行是泄漏:我无法弄清楚如何解决这个漏洞。

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

 - (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 个答案:

答案 0 :(得分:1)

您从该号码创建的NSString未在某处释放。

问题不在于显示的代码 - 它在其他地方从该数组中取出一个字符串,保留它,然后不释放它。泄漏只会向您显示最初分配泄漏内存的位置,并且该行上唯一分配内存的是[numberFormatter stringFromNumber:percentage]

要么是这样,要么整个数组没有正确释放(但是无论如何构建usrAdvancedBuyingPercents也会显示泄漏)。