Instruments的内存泄漏工具是否存在'for'循环问题?

时间:2010-02-12 18:05:32

标签: iphone objective-c cocoa xcode instruments

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

Leaks只显示泄露内存的分配位置......

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

那么意味着什么呢?其中一个消息对象被保留在其他地方并且永远不会放弃 - 或者整个消息数组在某处泄露,但是那个数组分配也会在泄漏中显示出来。 / p>