我在其他一些類中命名爲LineInfo
我分配它並使用該類的對象我將內存分配給某個數組,然後如何在類B中釋放該數組:關於靜態內存泄漏
A *a=[[A alloc]init];
a.lineArray=[[NSMutableArray alloc]initWithArray:_xElements];
[a release];
現在我發佈了一個([a release]
),但在靜態分析儀中仍然給出了泄漏linearray
。我該如何釋放它?
我在其他一些類中命名爲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];
然後你需要釋放lineArray中的dealloc方法A.
- (void)dealloc
{
[lineArray release];
[super dealloc];
}