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指出。因爲它不是我的答案,我只能投票。