2010-12-30 13 views
0

このコードフラグメントでメモリがリークしていますが、このメモリリークを修正する方法はありますか?書かれたようiPhoneのメモリリークの問題?

-(NSDictionary *)sanitizedFinancialLine:(NSDictionary *)theFinancialLine 
{ 
NSMutableDictionary *aFinancialLine = [NSMutableDictionary dictionaryWithDictionary:theFinancialLine]; 


for (id key in [aFinancialLine allKeys]) { 
id something = [aFinancialLine objectForKey:key]; 
if ([something respondsToSelector:@selector(decimalValue)]) { 
something = [NSDecimalNumber decimalNumberWithDecimal:[(NSNumber *)something decimalValue]]; // memory is leaking here 
[aFinancialLine setObject:something forKey:key]; 
    } 
} 
return [NSDictionary dictionaryWithDictionary:aFinancialLine];// and here 
} 
+0

スクリーンショットを撮る代わりに、コードのテキストを貼り付けるのがよいでしょう... –

答えて

0

、そのコードにおけるリークがありません。起きても何

は、しかし、NSDecimalNumberはどこかにそれが保持し、上(または下解除)されているので、コードのその行のがリークされて割り当てられています。アロケーション機器でビルドアンドアナリシスやトラック保持イベントを有効にしてみてください。

NSDictionaryインスタンスを作成せずにaFinancialLineを返すことができることに注意してください(ただし、傷つくことはなく、より防御的です)。