2010-02-14 2 views
0

Instruments는 아래 코드에서 다음 줄이 새어 나옴을 알려줍니다.이 누출 문제를 해결하는 방법을 알 수 없습니다.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는 이전에 해당 색인에 있던 것을 해제합니까? –

+0

@Anon 예,해야합니다 –

+0

게시 한 코드가 내게 맞는 것 같습니다. 보다 구체적인 정보를 게시 할 수 있습니까? (즉, 계기는 당신이 누출된다고 말하는 것은 무엇입니까?) –

답변

1

번호에서 생성중인 NSString이 어딘가에 공개되지 않습니다.

문제는 표시된 코드에 없습니다. 배열에서 문자열을 가져 와서 보관 한 다음 해제하지 않는 것이 좋습니다. 누출은 누출 된 메모리가 처음 할당 된 위치를 보여주고 메모리를 할당하는 해당 행의 유일한 것은 [numberFormatter stringFromNumber:percentage]입니다.

둘 중 하나 또는 전체 배열이 올바르게 릴리스되지 않은 것입니다 (하지만 usrAdvancedBuyingPercents가 누출되었음을 나타내는 빌드도 마찬가지입니다).