下面是我的代码,Leaks说我在NSMutableString alloc方法中遇到内存泄漏。我确信这是我忽略的事情,让我知道是否有人有任何想法。谢谢!
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if (!currentValue) {
currentValue = [[NSMutableString alloc] initWithCapacity:[string length]];
}
[currentValue setString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if([elementName isEqualToString:@"phone"]){
currentAgent.phone = currentValue;
}
[currentValue release];
currentValue = nil;
}
-Agent是在初始化类时创建的自定义对象。 XML有效并具有所有适当的开始/结束标记。
答案 0 :(得分:1)
查看此代码,我认为您的Agent类更有可能泄漏电话。假设代理使用retain
作为手机属性,这将导致手机持续时间超过应有的时间。
对象的创建者得到泄漏的“信用”,即使额外的保留在其他地方。
换句话说,在代理商:
- (void)dealloc {
self.phone = nil;
// anything else you need to do
[super dealloc];
}