2010-02-14 64 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也會顯示泄漏)。

相關問題