簡體   English   中英

關於靜態內存泄漏

[英]regarding Static memory leak

我在其他一些類中有一個名為LineInfo類我正在分配它並使用該類的對象我將內存分配給某個數組,然后如何在類B中釋放該數組:

A *a=[[A alloc]init];  
a.lineArray=[[NSMutableArray alloc]initWithArray:_xElements];   
[a release];  

現在我發布了一個( [a release] ),但是在靜態分析器中它仍然使用linearray進行泄漏。 我怎么發布它?

如果lineArray是'A'類的保留屬性,則為其分配一個已分配的對象應該會引發內存泄漏。 如果是這樣,請改為以下行;

a.lineArray=[[NSMutableArray alloc]initWithArray:_xElements];

試試以下,

NSMutableArray *tempArray = [[NSMutableArray alloc]initWithArray:_xElements];
a.lineArray = tempArray;
[tempArray release];

lineArray可能是A類的保留屬性,因此當您指定它時,您應該進行自動釋放:

a.lineArray=[[[NSMutableArray alloc]initWithArray:_xElements] autorelease];

或更好:

a.lineArray = [NSMutableArray arrayWithArray: _xElements];

然后你需要在A的dealloc方法中釋放lineArray。

- (void)dealloc
{
  [lineArray release];

  [super dealloc];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM