如何释放本地alloc init NSMutableArray并返回其引用

时间:2012-04-10 13:52:53

标签: iphone objective-c ios nsmutablearray

我有一个像这样的功能

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

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

可以解决这个问题,请写这个帖子

Thnx in advce

3 个答案:

答案 0 :(得分:3)

我通常这样做:

return [tempArr autorelease];

考虑切换到ARC。

答案 1 :(得分:2)

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

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

希望这会有所帮助。

答案 2 :(得分:0)

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

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