在仪器下的模拟器中运行我的应用程序以检查内存泄漏,这似乎表明此代码块中存在泄漏:
for (NSDictionary *messageDict in messageDataArray)
{
message = [[Message alloc] init];
... set some properties on the 'message' object
[messages addObject:message];
[message release];
}
显然,在这个循环中,我是分配/初始化一个对象,但在我完成它时释放它。想知道这是否只是乐器在该循环中看到活动的一种症状,或者我是否会失去理智(或做其他完全错误的事情)。
答案 0 :(得分:2)
您将创建的每条消息都隐藏到messages
中......您确定 最终是否泄漏(以及其中的内容)?或者也许内存在初始化程序或属性访问器中泄漏?
答案 1 :(得分:1)
Leaks只显示泄露内存的分配位置......
想想泄密意味着什么。这意味着在某个地方,你应该有一行代码发布了一些东西,但你没有那行代码。泄漏无法显示不存在的代码!
那么意味着什么呢?其中一个消息对象被保留在其他地方并且永远不会放弃 - 或者整个消息数组在某处泄露,但是那个数组分配也会在泄漏中显示出来。 / p>