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。
我更喜欢使用libxml2 – Akusete 2010-07-29 05:09:23
这是什么意思,“它不粘”?你应该得到调试输出或应该工作。 – jtbandes 2010-07-29 05:18:49
发布您的解析器代码 – slf 2010-07-29 05:19:30