0

下面是我的代码,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 有效并且具有所有适当的开始/结束标记。

4

1 回答 1

1

查看此代码,我认为您的 Agent 类更有可能泄漏电话。假设 Agentretain用于 phone 属性,这将导致 phone 的持续时间超过其应有的时间。

即使额外的保留在其他地方,对象的创建者也会被“记入”泄漏。

换句话说,在代理中:

- (void)dealloc {
    self.phone = nil;
    // anything else you need to do
    [super dealloc];
}
于 2010-11-08T22:39:44.393 回答