我在其他一些类中命名为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];
}