检查内存泄漏

时间:2010-12-07 10:21:01

标签: iphone memory-leaks instruments

嗨,请告诉我代码中是否有内存泄漏。
我在我的应用程序中解决了我的内存泄漏但是在这里会混淆它会造成内存泄漏吗?

     NSMutableArray *dataArray=[[NSMutableArray alloc]init];

if(condition)
{
        [dataArray addObject:[appDelegate selectFromDatabase:x]];//returning an autoreleased array
}
else
{
dataArray=[appDelegate selectFromDatabase:a];
}
     //use dataArray

        [dataArray release];

2 个答案:

答案 0 :(得分:4)

此代码会泄漏内存。您重新分配dataArray而不释放旧值。通过生成的属性进行赋值,旧值将首先释放。

else
{
    dataArray=[appDelegate selectFromDatabase:a];
}

您还可以重构代码以避免创建数组,除非您确实需要它:

if (condition)
{
    // Create array here
}
else
{
    // get array from other place
}

答案 1 :(得分:0)

您可以使用Instruments帮助您搜索内存泄漏。

http://www.cimgf.com/2008/04/02/cocoa-tutorial-fixing-memory-leaks-with-instruments/