0

在 Instruments 下的模拟器中运行我的应用程序以检查内存泄漏,这似乎表明此代码块中存在泄漏:

for (NSDictionary *messageDict in messageDataArray)
{
    message = [[Message alloc] init];
    ... set some properties on the 'message' object

    [messages addObject:message];
    [message release];
}

显然,在这个循环中,我正在分配/初始化一个对象,但在我完成它时释放它。想知道这是否只是 Instruments 如何看待该循环中的活动的症状,或者我是否正在失去理智(或做其他完全错误的事情)。

4

2 回答 2

2

您将创建的每条消息都隐藏到messages...您确定最终不会泄漏(以及其中的内容)吗?或者可能内存在您的初始化程序或属性访问器中泄漏?

于 2010-02-12T18:08:47.517 回答
1

泄漏仅向您显示泄漏内存的分配位置...

想想泄漏意味着什么。这意味着在某个地方,你应该有一行代码发布了一些东西,但你没有那行代码。泄漏无法向您显示不存在的代码!

所以这意味着,其中的一个消息对象被保留在其他地方并且永远不会放手 - 或者整个消息数组在某处泄漏,但随后该数组分配也会显示在泄漏中。

于 2010-02-13T02:58:50.930 回答