iPhone内存泄漏问题?
Posted
技术标签:
【中文标题】iPhone内存泄漏问题?【英文标题】:Iphone memory leak issue? 【发布时间】: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
【问题讨论】:
最好粘贴代码文本而不是截图... 【参考方案1】:正如所写,该代码中没有泄漏。
但是,可能发生的情况是该代码行上的NSDecimalNumber
allocated 被泄露,因为它在其他地方被过度保留(或释放不足)。尝试构建和分析和/或在分配工具中启用“跟踪保留事件”。
请注意,您可以只返回 aFinancialLine
而无需创建 NSDictionary
实例(不过这样做并没有什么坏处,而且更具防御性)。
【讨论】:
以上是关于iPhone内存泄漏问题?的主要内容,如果未能解决你的问题,请参考以下文章