2012-04-10 43 views
0

我有一個功能,這樣如何釋放本地ALLOC初始化的NSMutableArray,並返回其引用

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

在上面的例子中,我創建新對象的NSMutableArray和需要返回其refernce。 現在一切工作正常,但是當我運行它與儀器(泄漏)它顯示100%內存泄漏在「NSMutableArray * tempArr = [NSMutableArray分配]初始化];」這條線。

什麼可以此解決方案,請寫信給這個線程

日Thnx在advce

+1

在這種情況下使用autorelease – WhiteTiger 2012-04-10 13:54:36

+0

thnx作爲您的快速回復,但有一件事我不明白的是它何時會從內存位置刪除值 – user968597 2012-04-10 13:59:17

+1

如果您使用的是ARC,那將是您所需要的。 – JeremyP 2012-04-10 14:01:56

回答

0

你將不得不將其釋放回上,像這樣

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

對於你應該使用自動釋放這樣的這樣的情況下...

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

希望這有助於。

3

我經常這樣做:

return [tempArr autorelease]; 

考慮改用ARC。