我是iPhone新手编程的新手。我写了一个小应用程序。应用程序的一部分在模拟器中正常运行。我不明白以下几点:
分析师不同意该代码。 “方法返回一个具有+1保留计数的Objective-C对象(拥有引用)”他说。
有人帮助我。
...谢谢
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"item"]) {
[item setObject:currentTitle forKey:@"name"];
[item setObject:currentAutor forKey:@"descr"];
[item setObject:currentContact forKey:@"contact"];
[rssArray addObject:[item copy]];
NSLog(@"Nachricht: %@", currentTitle);
[item release];
}
[rssArray release];
}
答案 0 :(得分:11)
[rssArray addObject:[item copy]];
此行产生内存泄漏,因为rssArray将retain发送到[item copy],而[item copy]创建新对象,object [item copy]将具有retainCount = 2,但只会释放一次。 您应该使用[[item copy] autorelease],或将[item copy]指定给临时变量,并在将其添加到数组后将其释放。