当我分析我的代码是否存在来自 xcode 的内存泄漏时,我有一个警告。我尝试了一个小时来弄清楚但无法理解,但我对特定代码有些怀疑:
[stack push:[outputString copy]];
[stack print]; //here xcode tell there is potential leak of an object that is createn on above line
我的堆栈实现是:
-(void) push:(NSString *)element{
[store addObject:element];
top++;
}
-(void) print{
NSLog(@"%@", [store objectAtIndex:top]);
}
- (void)dealloc {
[store release];
[super dealloc];
}
这是我的堆栈类的初始化:
-(id) initWithMutableArray{
self = [super init];
if(self){
store = [[NSMutableArray alloc] init];
top = -1;
}
return self;
}
我怀疑代码 [outputString 复制]。但是我将它存储在数组中,并且我在 dealloc 上释放存储数组。格拉西亚斯。