【问题标题】:Iphone memory leak issue?iPhone内存泄漏问题?
【发布时间】:2010-12-30 05:40:02
【问题描述】:

此代码片段内存泄漏,如何解决此内存泄漏?

-(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
}

【问题讨论】:

  • 最好粘贴代码文本而不是截图...

标签: iphone instruments


【解决方案1】:

正如所写,该代码中没有泄漏

但是,可能发生的情况是该代码行上的NSDecimalNumber allocated 被泄露,因为它在其他地方被过度保留(或释放不足)。尝试构建和分析和/或在分配工具中启用“跟踪保留事件”。

请注意,您可以只返回 aFinancialLine 而无需创建 NSDictionary 实例(不过这样做并没有什么坏处,而且更具防御性)。

【讨论】:

    猜你喜欢
    • 2011-11-12
    • 1970-01-01
    • 2010-12-29
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多