【发布时间】:2011-06-10 12:35:32
【问题描述】:
我正在尝试解析 XML。我基本上有一个 NSMutableDictionary(比如 root),其中的元素是其他字典(比如 branch_1、branch_2、branch_3 等)。
在解析 XML 时,我为每个分支创建一个 NSMutableDictionary 并以这种方式向其中添加元素:
if ([elementName compare:@"branch_1"] == NSOrderedSame)
{
[root setObject:[[NSMutableDictionary alloc] init] forKey:@"branch_1"]; //Creating a new NSMutableDictionary
}
//Adding elements to the newly created NSMutabeDictionary
if ([elementName compare:@"element_1"] == NSOrderedSame)
{
[[root objectForKey:@"branch_1"] setObject:someObject forKey:@"element_1"];
}
if ([elementName compare:@"element_2"] == NSOrderedSame)
{
[[root objectForKey:@"branch_1"] setObject:someObject forKey:@"element_2"];
}
然后我最终在 dealloc 方法中释放我的根字典。然而,Xcode 中的分析工具在我为 branch_1 等创建新字典的行中显示了泄漏。
我猜我应该在发布根词典之前发布分支词典。但是,根字典的内容不应该在释放根本身时释放吗?
请告诉我如何修复此泄漏。任何帮助将不胜感激 !!
【问题讨论】:
标签: iphone objective-c debugging memory-management memory-leaks