0

我正在开发一个应用程序。其中我执行 xml 解析并获得 400 个问题。为了获得这些问题,我创建了一个具有该问题属性的类。当问题标签被触发时,我为该类创建了一个对象并保存了该属性信息当为该类触发 didendelement 时,我将该类对象添加到一个数组中。像这样,我为每个问题创建一个对象。当我这样做时,它会占用大量内存并且过程也很慢。如果我运行这个在后台它需要相同的时间。所以请告诉我如何用更少的内存来做这个。我的解析代码就像

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict  
{
    if([elementName isEqualToString:@"question"])
    {
        questions=[[Questions alloc]init];
        questions.content=[attributeDict valueForKey:@"content"];
        questions.id=[attributeDict valueForKey:@"id"];
        questions.answer=[attributeDict valueForKey:@"answers"];
        questions.type=[attributeDict valueForKey:@"type"];
        questions.markertext=[attributeDict valueForKey:@"marker_text"];
        questions.markertop=[attributeDict valueForKey:@"marker_top"];
        questions.markerleft=[attributeDict valueForKey:@"marker_left"];
    }
 }


- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
   [qshns addObject:questions];
}  

这里 qshns 是一个数组。

4

2 回答 2

0

只有一种方法可以占用更少的内存,即只点击一次 XML 类并将其存储到任何单例类的数组或数据库中。然后在任何你想要的地方使用它。永远不要一次又一次地点击 XML 类,它会占用你的大量内存。

于 2012-05-17T09:45:24.473 回答
0

将您的 XML 文件复制到 Core Data 数据存储中。然后,您将获得超快速访问,几乎没有任何内存使用。

于 2012-05-17T13:23:07.940 回答