0

我有一个这样的功能

    -(NSMutableArray *)getData
    {
       NSMutableArray *tempArr=[NSMutableArray alloc]init];
      // perform some operation on tempArr
      return tempArr;
    }

在上面的示例中,我为 nsmutablearray 创建了新对象,并且需要返回它的引用。现在一切正常,但是当我使用仪器(泄漏)运行它时,它在“NSMutableArray *tempArr=[NSMutableArray alloc]init];”处显示 100% 内存泄漏 这条线。

有什么办法可以解决这个问题,请写到这个线程

建议中的Thnx

4

3 回答 3

3

我通常这样做:

return [tempArr autorelease];

考虑切换到 ARC。

于 2012-04-10T13:59:51.390 回答
2

对于这种情况,您应该像这样使用自动释放...

 -(NSMutableArray *)getData
    {
       NSMutableArray *tempArr=[[NSMutableArray alloc]init]autorelease];
      // perform some operation on tempArr
      return tempArr;
    }

希望这会有所帮助。

于 2012-04-10T13:57:13.813 回答
0

您必须在返回时释放它,就像这样

 -(NSMutableArray *)getData
    {
       NSMutableArray *tempArr=[NSMutableArray alloc]init];
      // perform some operation on tempArr
      return [tempArr autorelease];
   }
于 2012-04-10T13:59:31.490 回答