0

我一直在试图实现NSXMLParser,到目前为止我有内存问题,性能问题或它不起作用。NSXMLParser和内存管理问题

我原本是从网上的一个例子中工作,它泄漏了一堆内存。我正确地释放了这些对象,但发现有性能问题,因为我会为每个元素分配并释放每个对象。于是我决定使用哪个工作过更好的性能,但是当我尝试添加字典数组它不沾:

[overlay insertObject:entry atIndex:[overlay count]]; 

因此,我有3个问题。属性是处理内存管理问题的最佳方式吗?如果是这样,为什么我不能将NSDictionary *条目存储到覆盖图中?如果属性不是最好的方式是什么?

干杯

编辑:我处理相对较小的XML文件,但他们有很多的元素。我已经从一个URL下载它们并将数据放入一个SQLite数据库。

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 
if ([attributeDict objectForKey:@"title"]) { 
    self.title = [attributeDict objectForKey:@"title"]; 
} else if ([attributeDict objectForKey:@"lng"]) { 
    self.latitude = [attributeDict objectForKey:@"lng"]; 
    self.longitude = [attributeDict objectForKey:@"lat"]; 
} 
if (title && latitude) { 
    NSMutableDictionary *entry = [[NSMutableDictionary alloc] init]; 
    [entry setObject:title forKey:@"title"]; 
    [entry setObject:latitude forKey:@"latitude"]; 
    [entry setObject:longitude forKey:@"longitude"]; 
    [overlay insertObject:entry atIndex:[overlay count]]; 
    [entry release]; 
    NSLog(@"%@", overlay); 
} 
} 

没有被使用的其他代表呼吁,因为只有数据是属性。 NSLog最后只返回null。

+0

我更喜欢使用libxml2 – Akusete 2010-07-29 05:09:23

+0

这是什么意思,“它不粘”?你应该得到调试输出或应该工作。 – jtbandes 2010-07-29 05:18:49

+0

发布您的解析器代码 – slf 2010-07-29 05:19:30

回答

0

这是一个简单的问题,因为willcodejavaforfood指出。因为它不是我的答案,我只能投票。