【发布时间】:2011-07-17 11:21:32
【问题描述】:
在我的代码中,我在 viewDidAppear 中定义了一个 NSDictionary,如下所示:
dataDictionary = [[NSMutableDictionary alloc] init];
然后稍后在 loadData 方法中,我像这样加载 NSDictionary 的可变副本:
[dataDictionary setObject:[receivedData mutableCopy] forKey:[theConnection description]];
稍后,当我切换到不同的视图时,我会卸载我的 dataDictionary 以节省内存。在 viewDidDissappear 中,我输入:
[数据字典发布]; 数据字典=nil;
我还在 dealloc 中发布了 dataDictionary。
但是,好像有一个与 mutableCopy 相关的内存泄漏,而这是我制作的唯一 mutableCopy,所以它必须来自上图所示的 mutableCopy。有谁知道为什么这可能会泄漏?我认为 mutableCopy 除了为 NSMutableDictionary 所做的分配外,还会进行另一个分配,但我不确定如何处理,因为 mutableCopy 在字典内并且字典已被释放。
提前谢谢...
【问题讨论】:
-
它看起来不错,如果您不再使用
receivedData,则需要[receivedData release],否则至少在dealloc中释放receivedData -
是的,在我将收到的数据作为副本添加到字典后,我确实释放了它......
标签: objective-c cocoa-touch nsdata memory-leaks nsmutabledictionary