2010-02-14 20 views
0

仪器告诉我从下面的代码中的以下行是泄漏:我无法弄清楚如何解决此泄漏问题。使用replaceObjectAtIndex在本声明中发生什么泄漏

[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]; 


} 
+0

replaceObjectAtIndex是否释放之前在该索引处的内容? – 2010-02-14 20:31:51

+0

@Anon是的,它应该 – 2010-02-14 20:55:12

+0

您发布的代码看起来对我来说是正确的。你能发表更多具体的信息吗? (即,乐器说你在泄漏什么?) – 2010-02-14 20:56:13

回答

1

您从编号创建的NSString不会在某处发布。

问题不在于显示的代码中 - 它在某处从该数组中取出一个字符串,保留它,然后不释放它。泄漏只是告诉你泄漏的内存最初是在哪里分配的,并且该行中分配内存的唯一东西是[numberFormatter stringFromNumber:percentage]

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

相关问题