[英]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.