簡體   English   中英

在iPhone上使用NSXMLParser進行內存泄漏

[英]Memory Leak with NSXMLParser on IPhone

下面是我的代碼,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有效,並具有所有適當的開始/結束標簽。

查看此代碼,我認為您的Agent類更有可能泄漏電話。 假設Agent對電話屬性使用了retain ,這將導致電話的持久保存時間超出應有的時間。

即使多余的保留在其他地方,對象的創建者也會因泄漏而“獲得信用”。

換句話說,在代理中:

- (void)dealloc {
    self.phone = nil;
    // anything else you need to do
    [super dealloc];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM